.ts-control-native {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.ts-control-trigger {
    display: flex;
    width: 100%;
    min-width: 0;
    min-height: 46px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border: 1px solid #d7e0d7;
    border-radius: 13px;
    background: #fbfcfa;
    padding: 0 12px 0 13px;
    color: #172019;
    font: inherit;
    font-size: .88rem;
    font-weight: 500;
    line-height: 1.25;
    text-align: left;
    cursor: pointer;
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.ts-control-trigger:hover { background: #fff; border-color: #bfcbbf; }
.ts-control-trigger:focus-visible,
.ts-control-trigger.is-open {
    border-color: #1cb251;
    outline: 0;
    box-shadow: 0 0 0 3px rgba(28, 178, 81, .12);
}
.ts-control-trigger[disabled] { cursor: not-allowed; opacity: .58; }
.ts-event-field-shell:has(> .ts-control-trigger) {
    padding: 0 !important;
}
.ts-event-field-shell > .ts-control-trigger {
    height: 100%;
    min-height: 100%;
    border: 0;
    border-radius: inherit;
    background: transparent;
    box-shadow: none;
}
.ts-event-field-shell > .ts-control-trigger:hover,
.ts-event-field-shell > .ts-control-trigger:focus-visible,
.ts-event-field-shell > .ts-control-trigger.is-open {
    border: 0;
    background: transparent;
    box-shadow: none;
}
.ts-control-trigger-value {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ts-control-trigger-value.is-placeholder { color: #8b978d; font-weight: 450; }
.ts-control-trigger-icon {
    display: grid;
    width: 28px;
    height: 28px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 9px;
    background: #eef7ef;
    color: #17843d;
}
.ts-control-trigger-icon svg { width: 15px; height: 15px; }

.ts-control-backdrop {
    position: fixed;
    inset: 0;
    z-index: 9980;
    display: none;
    border: 0;
    background: rgba(6, 15, 9, .56);
    backdrop-filter: blur(4px);
}
.ts-control-backdrop.is-open { display: block; }
.ts-control-dialog {
    position: fixed;
    top: 50%;
    left: 50%;
    z-index: 9981;
    display: none;
    width: min(420px, calc(100vw - 28px));
    max-height: min(720px, calc(100dvh - 28px));
    transform: translate(-50%, -50%);
    overflow: hidden;
    border: 1px solid #dce4dd;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 28px 90px rgba(4, 14, 8, .28);
}
.ts-control-dialog.is-open { display: flex; flex-direction: column; }
.ts-control-dialog-head {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    border-bottom: 1px solid #e4eae4;
    padding: 15px 16px 13px;
}
.ts-control-dialog-kicker {
    color: #17843d;
    font-size: .61rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.ts-control-dialog-title {
    margin: 3px 0 0;
    color: #111714;
    font-family: var(--ts-font-display, inherit);
    font-size: 1.18rem;
    font-weight: 650;
    letter-spacing: -.02em;
    line-height: 1.12;
}
.ts-control-close {
    display: grid;
    width: 38px;
    height: 38px;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid #d9e2d8;
    border-radius: 12px;
    background: #fff;
    color: #172019;
    font: inherit;
    font-size: 1.15rem;
    cursor: pointer;
}
.ts-control-body {
    min-height: 0;
    flex: 1 1 auto;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 12px;
}
.ts-control-options { display: grid; gap: 5px; }
.ts-control-option {
    display: flex;
    width: 100%;
    min-height: 46px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border: 0;
    border-radius: 13px;
    background: #fff;
    padding: 10px 12px;
    color: #263329;
    font: inherit;
    font-size: .86rem;
    font-weight: 500;
    text-align: left;
    cursor: pointer;
}
.ts-control-option:hover { background: #f1f6f1; }
.ts-control-option.is-selected { background: #e9f8ee; color: #137d37; font-weight: 650; }
.ts-control-option-check { visibility: hidden; color: #17843d; font-size: 1rem; }
.ts-control-option.is-selected .ts-control-option-check { visibility: visible; }

.ts-calendar-nav {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) 40px;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
}
.ts-calendar-nav button {
    display: grid;
    width: 40px;
    height: 40px;
    place-items: center;
    border: 1px solid #dde5dd;
    border-radius: 12px;
    background: #fff;
    color: #172019;
    font: inherit;
    cursor: pointer;
}
.ts-calendar-month { text-align: center; font-size: .92rem; font-weight: 650; }
.ts-calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.ts-calendar-weekday {
    padding: 5px 0;
    color: #7b887d;
    font-size: .61rem;
    font-weight: 650;
    text-align: center;
    text-transform: uppercase;
}
.ts-calendar-day {
    display: grid;
    aspect-ratio: 1;
    min-height: 38px;
    place-items: center;
    border: 0;
    border-radius: 11px;
    background: #fff;
    color: #243127;
    font: inherit;
    font-size: .8rem;
    font-weight: 550;
    cursor: pointer;
}
.ts-calendar-day:hover { background: #f0f5f0; }
.ts-calendar-day.is-today { box-shadow: inset 0 0 0 1px #9bc8a5; }
.ts-calendar-day.is-selected { background: #1cb251; color: #fff; }
.ts-calendar-day:disabled { cursor: not-allowed; opacity: .24; }
.ts-calendar-day.is-empty { visibility: hidden; }
.ts-control-time-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.ts-control-time-grid .ts-control-option { justify-content: center; min-height: 44px; padding: 8px; }
.ts-control-dialog-footer {
    display: flex;
    flex: 0 0 auto;
    justify-content: space-between;
    gap: 8px;
    border-top: 1px solid #e4eae4;
    background: #fff;
    padding: 9px 12px;
}
.ts-control-dialog-footer button {
    min-height: 42px;
    border: 1px solid #d9e2d8;
    border-radius: 12px;
    background: #fff;
    padding: 0 14px;
    color: #344238;
    font: inherit;
    font-size: .78rem;
    font-weight: 600;
    cursor: pointer;
}
.ts-control-dialog-footer button:last-child { border-color: #1cb251; background: #1cb251; color: #fff; }
body.ts-control-lock { overflow: hidden !important; }

@media (max-width: 600px) {
    .ts-control-dialog {
        top: auto;
        right: 8px;
        bottom: max(8px, env(safe-area-inset-bottom));
        left: 8px;
        width: auto;
        max-height: min(78dvh, 680px);
        transform: none;
        border-radius: 22px;
    }
    .ts-control-dialog::before {
        width: 42px;
        height: 4px;
        flex: 0 0 auto;
        align-self: center;
        margin-top: 8px;
        border-radius: 999px;
        background: #d6dfd7;
        content: '';
    }
    .ts-control-dialog-head { padding-top: 10px; }
    .ts-control-body { padding: 10px 12px 12px; }
    .ts-control-dialog-footer { padding-bottom: max(9px, env(safe-area-inset-bottom)); }
}
