/* Basics load first JS! */
.tk-hidden {
    display: none;
}
/* ------------------------------------------------------------------------------- */
/* ------------------------------------------------------------------------------- */
/* Base for jQuery UI Widget and Form Elements */
.ui-widget .excluding-days-display,
.ui-widget input,
.ui-widget select,
.ui-widget textarea,
.ui-widget button {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    font-size: 14px;
    display: block;
    width: 100%;
    padding: 0.375rem 0.75rem;
    line-height: 1.5;
    color: #495057;
    background: #fff;
    border: 1px solid #ced4da;
    border-radius: 0.25rem;
    transition:
        border-color 0.15s ease-in-out,
        box-shadow 0.15s ease-in-out;
}

.ui-widget .excluding-days-display,
.ui-widget input,
.ui-widget textarea {
    width: 96%;
}

.ui-widget button,
.ui-button {
    display: inline-block;
    width: auto;
    margin: 0.2rem;
    border: none;
}


/* ------------------------------------------------------------------------------- */

.ui-widget input:focus,
.ui-widget select:focus,
.ui-widget textarea:focus,
.ui-widget button:focus {
    border-color: #80bdff;
    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}
.ui-widget input[disabled],
.ui-widget select[disabled],
.ui-widget textarea[disabled],
.ui-widget button[disabled],
fieldset[disabled] .ui-widget input,
fieldset[disabled] .ui-widget select,
fieldset[disabled] .ui-widget textarea,
fieldset[disabled] .ui-widget button {
    background: #e9ecef;
    opacity: 1;
}

.ui-widget input[type='checkbox'] {
    display: inline-block;
    width: 1rem;
    margin: 0 1.4rem 0 0;
}



.ui-widget .ui_info {
    font-size: 0.8rem;
    color: #9ecdff;
}


/* ------------------------------------------------------------------------------- */
/* Bootstrap-like button classes */
.bootstrap_button_line {
    display: flex;
    flex-wrap: wrap;
}
.bootstrap_button_line .bootstrap_button,
.bootstrap_button {
    width: auto;
    font-weight: 600;
    background-color: #fff;
    /*background: #0056b3;*/
    /*color: #fff;*/
    white-space: nowrap;
    border: 1px solid #898989;
    font-size: 0.8rem;
    line-height: 1.6;
    border-radius: 0.25rem;
    /*margin-left: 0.5rem;*/
    margin: 0.2rem 0 0.2rem 0.15rem;
    /*padding: 0.375rem 0.75rem;*/
    padding: 0.2rem 0.15rem;
}
/* Color variants - default state */
.bootstrap_button_line .bootstrap_primary,
.bootstrap_primary {
    color: #0056b3;
    border-color: #0056b3;
}
.bootstrap_button_line .bootstrap_info,
.bootstrap_info {
    color: #17a2b8;
    border-color: #17a2b8;
}
.bootstrap_button_line .bootstrap_success,
.bootstrap_success {
    color: #28a745;
    border-color: #28a745;
}
.bootstrap_button_line .bootstrap_warning,
.bootstrap_warning {
    color: #ffc107;
    border-color: #ffc107;
}
.bootstrap_button_line .bootstrap_dark,
.bootstrap_dark {
    color: #343a40;
    border-color: #343a40;
}

.ter-kal-button-form .button-danger,
.button-danger {
    background-color: #dc3232;
    color: #fff;
    border-color: #a31919;
}
.ter-kal-button-form .button-danger:hover,
.button-danger:hover {
    background-color: #a31919;
    color: #fff;
    border-color: #dc3232;
}

/* Hover states - unified pattern */
.bootstrap_primary:hover,
.bootstrap_info:hover,
.bootstrap_success:hover,
.bootstrap_warning:hover,
.bootstrap_dark:hover {
    color: #fff;
    border-color: #898989;
}
.bootstrap_primary:hover {
    background-color: #0056b3;
}
.bootstrap_info:hover {
    background-color: #17a2b8;
}
.bootstrap_success:hover {
    background-color: #28a745;
}
.bootstrap_warning:hover {
    background-color: #ffc107;
}
.bootstrap_dark:hover {
    background-color: #343a40;
}
/* ------------------------------------------------------------------------------- */

.event-title {
    font-weight: 600;
    font-size: 1.6rem;
}

.event-time {
    font-weight: 600;
    font-size: 1rem;
}

/* ---------------------------- */
.ter_kal_info {
    font-size: 0.9rem;
    color: #495057;
}
/* ---------------------------- */

.event-details-html {
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}

.event-subdetail-item {
    font-size: 0.7rem;
    color: #666666;
}




/* ------------------------------------------------------------------------------- */
/* Image Formatting - From termin_kalender_format_buttons.js */
.wp-block-image {
    max-width: 100%;
    height: auto;
}
/* ------------------------------------------------------------------------------- */








/* ============================================
   BASE CONTAINERS
   ============================================ */
.ter-kal-block-kalender {
    container-type: inline-size;
    /* container-name: tk-kalender-block; */
    width: 100%;
}
/* ============================================
   CONTENT LAYOUTS
   ============================================ */
.ter-kal-block-kalender .ter-kal-content,
.ter-kal-block-kalender .frontend_kalender {
    width: 100%;
}
/* ============================================
   ============================================ */
/* FullCalendar Event Styling */
.fc-event {
    --fc-list-event-dot-width: 2rem;
}
.fc-list-event-title {
    width: 100%;
}
/* Multimonth Body - Title */
div.fc-multimonth-body div.fc-daygrid-day div.fc-daygrid-day-body div {
    font-size: 0.8rem;
}
/* Daygrid Event */
.fc-daygrid-event div {
    font-size: 0.9rem;
}
/* ============================================================== */
/* Toolbar - Category Button Styles */
.kategoriezeile,
.fc-toolbar,
.fc-header-toolbar {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    font-size: 1rem;
}
.kategoriezeile .category-button {
    display: inline-flex;
    align-items: center;
    margin: 0.25rem;
    padding: 0.5rem;
    border-radius: 0.3rem;
    cursor: pointer;
    text-align: center;
    font-weight: 700;
    font-size: 1.1rem;
    cursor: pointer;
    opacity: 1;
}
/* ter_kal_CHANGE: Visual feedback for active category filters */
.category-button:hover {
    opacity: 1;
    box-shadow: 0 0 0 1px rgba(0,0,0,0.2) inset;
}
.category-button.ter_kal_filtered {
    opacity: 0.33;
    transition: opacity 0.4s;
    /*visibility: hidden;*/
    /*display: none;*/
}
/* ter_kal_CHANGE: Fade out filtered events */
.fc-event.ter-kal-hidden {
    opacity: 0 !important;
    pointer-events: none !important; /* Disable clicks on hidden events */
    transition: opacity 0.3s;
}

.kategoriezeile .category-button .dashicons {
    margin-right: 0.7rem;
    font-size: 1.6rem;
    vertical-align: middle;
    line-height: 1.2rem;
}

.kategoriezeile .kategorie_help_plus {
    margin-right: 0.25rem !important;
}
.fc-toolbar .fc-button {
    color: #8fa0ae;
    border-color: #8fa0ae;
    background-color: #ffffff;
}
.fc-header-toolbar button {
    padding: 0.2rem 0.2rem;
}
.fc-header-toolbar .fc-toolbar-center {
    font-size: 0.8rem;
}
.fc-footer-toolbar {
    font-size: 0.8rem;
    padding-top: 0;
}
.fc-footer-toolbar .fc-button-primary {
    color: #8fa0ae;
    border-color: #8fa0ae;
    background-color: #ffffff;
}
/* -------------------------------------------------------------- */
/* Google Calendar Event */
.fc .fc-google-event {
    border: 3px solid #9ecdff !important;
    /* Force text wrapping */
    white-space: normal !important;
    word-break: break-word !important;
    /* Optional spacing improvements */
    padding: 2px 5px !important;
    line-height: 1.3 !important;
}
/* Fix for FullCalendar's default flex container */
.fc .fc-event-main {
    flex-wrap: wrap !important;
    min-width: 0 !important; /* Allows text truncation in flex children */
}
/* Specific fix for time-grid views */
.fc-timegrid-event-harness-inset .fc-timegrid-event {
    overflow: visible !important;
}
/* Screen reader only / focus trap helper */
.tk-hidden-focus-trap {
    visibility: hidden;
    width: 0;
    height: 0;
    position: absolute;
    left: -9999px;
}
/* zusatz fur frontend/admin/ical kalender ---------------------------------*/
/*
admin_kalender
frontend_kalender
 frontend_kalender_ical
 */
/*.admin_kalender .kategoriezeile .category-button {
    cursor: pointer;
}
.frontend_kalender .kategoriezeile .category-button {
    cursor: default ;
}*/
.frontend_kalender .fc-event {
    cursor: pointer;
    white-space: normal !important;
    word-wrap: break-word;
}
.frontend_kalender .fc-event-time {
    display: none;
}

.admin_kalender .time_text {
    font-size: 0.6rem;
}
.admin_kalender .title_text_lw {
    width: 100%;
    font-size: 1rem;
    font-weight: 600
}
.admin_kalender .title_text {
    padding: 2px;
    border-radius: 3px;
    width: 100%;
    font-size: 0.9rem;
    white-space: break-spaces;
}
.admin_kalender .title_text_mmy {
    font-size: 0.7rem;
}
.admin_kalender .title_text_tgd {
    font-size: 1rem;
    font-weight: 600;
}
/* ------------------------------------------------------------------------------- */

/* Share button styling */
.tk_btn_export,
.tk_btn_share {
    margin: 2px !important;
    padding: 6px 12px !important;
    font-size: 13px !important;
}

.tk_btn_separator {
    width: 100% !important;
    height: 1px !important;
    background: #ddd !important;
    margin: 8px 0 !important;
    padding: 0 !important;
    border: none !important;
}

.tk-share-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    padding: 10px;
}

.tk-share-btn {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px;
    border: 1px solid #ddd;
    background: #f7f7f7;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.2s;
}

.tk-share-btn:hover {
    background: #fff;
    border-color: #2271b1;
    transform: translateY(-1px);
}

.tk-share-btn .dashicons {
    font-size: 20px;
}



/* ============================================
   RESPONSIVE ADJUSTMENTS
   ============================================ */
@container (max-width: 768) {
    .admin_kalender .time_text {
        font-size: 0.5rem;
    }
    .admin_kalender .title_text_lw {
        font-size: 0.9rem;
    }
    .admin_kalender .title_text {
        padding: 1px;
        border-radius: 2px;
        font-size: 0.7rem;
        word-wrap: break-word;
    }
    .admin_kalender .title_text_mmy {
        /*font-size: 0.6rem;*/
    }
    .admin_kalender .title_text_tgd {
       /* font-size: 0.9rem; */
    }
}
/* Small containers (< 400px) - Widget areas */
@container (max-width: 420px) {
    /* Calendar & iCal Calendar */
    .frontend_kalender .fc-daygrid-week-number,
    .frontend_kalender .tk_kalender_button_text,
    .admin_kalender .fc-daygrid-week-number,
    .admin_kalender .tk_kalender_button_text {
        display: none;
    }
    .frontend_kalender .fc-list-event-time,
    .frontend_kalender .fc-list-event-title,
    .frontend_kalender .ter_kal_simple_calendar button,
    .frontend_kalender .ter_kal_google_calendar button,
    .frontend_kalender button,
    .frontend_kalender .fc-event,
    .frontend_kalender .fc-button,
    .frontend_kalender .fc,
    .admin_kalender .fc-list-event-time,
    .admin_kalender .fc-list-event-title,
    .admin_kalender .ter_kal_simple_calendar button,
    .admin_kalender .ter_kal_google_calendar button,
    .admin_kalender button,
    .admin_kalender .fc-event,
    .admin_kalender .fc-button,
    .admin_kalender .fc {
        font-size: 0.7rem;
        --fc-list-event-dot-width: 1rem;
    }


    .frontend_kalender .fc-event .fc-event-title,
    .admin_kalender .fc-event .fc-event-title {
        font-size: 0.6rem;
        line-height: 0.65rem;
        word-wrap: break-word;
    }

    .frontend_kalender .fc .fc-toolbar-title,
    .admin_kalender .fc .fc-toolbar-title {
        font-size: 1rem !important;
    }
    .frontend_kalender .kategoriezeile .category-button,
    .admin_kalender .kategoriezeile .category-button {
        padding: 0.2rem;
        font-size: 0.8rem;
        margin: 0.15rem;
    }
    .frontend_kalender .kategoriezeile .category-button .dashicons,
    .admin_kalender .kategoriezeile .category-button .dashicons {
        font-size: 1.4rem;
        margin: 0.2rem;
    }

    .admin_kalender .time_text {
        font-size: 0.4rem;
    }
    .admin_kalender .title_text_lw {
        font-size: 0.8rem;
    }
    .admin_kalender .title_text {
        padding: 1px;
        border-radius: 2px;
        font-size: 0.7rem;
    }
    .admin_kalender .title_text_mmy {
        font-size: 0.6rem;
    }
    .admin_kalender .title_text_tgd {
        font-size: 0.8rem;
    }

}

/* ------------------------- */
@container (max-width: 380px) {
    .frontend_kalender .fc-list-event-time,
    .frontend_kalender .fc-list-event-title,
    .frontend_kalender .fc-event .fc-event-title,
    .admin_kalender .fc-list-event-time,
    .admin_kalender .fc-list-event-title,
    .admin_kalender .fc-event .fc-event-title {
        font-size: 0.55rem;
        line-height: 0.5rem;
        padding: 0.1rem;
        border-radius: 0.2rem;
        word-wrap: normal;
    }
}
/* ------------------------- */
@container (max-width: 320px) {
    .frontend_kalender .fc,
    .admin_kalender .fc {
        font-size: 0.45rem;
    }
    .frontend_kalender .fc-event,
    .admin_kalender .fc-event {
        --fc-list-event-dot-width: 0.7rem;
    }
    .frontend_kalender .fc-event .fc-event-title,
    .admin_kalender .fc-event .fc-event-title {
        font-size: 0.45rem;
        line-height: 0.4rem;
    }
}
/* ------------------------- */