.calendar-page {
    margin-top: 22px;
}
.calendar-breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    padding: 14px 18px;
    margin-bottom: 24px;
    background: rgba(255,255,255,.72);
    border: 1px solid rgba(255,255,255,.45);
    border-radius: 24px;
    box-shadow: 0 10px 30px rgba(25, 40, 33, .08);
}
.calendar-breadcrumbs a { color: #0f7a5c; font-weight: 800; }
.calendar-breadcrumbs span { font-weight: 800; color: #1f2937; }
.calendar-hero {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    align-items: flex-end;
    background: linear-gradient(135deg, rgba(15,81,50,.96), rgba(25,135,84,.92));
    color: #fff;
    border-radius: 28px;
    padding: clamp(24px, 4vw, 40px);
    box-shadow: 0 20px 50px rgba(25, 135, 84, .22);
    margin-bottom: 20px;
}
.calendar-kicker {
    display: inline-flex;
    padding: 8px 14px;
    border-radius: 999px;
    background: rgba(255,255,255,.16);
    border: 1px solid rgba(255,255,255,.22);
    font-weight: 800;
    margin-bottom: 14px;
}
.calendar-hero h1 {
    font-size: clamp(2.2rem, 5vw, 4rem);
    line-height: 1;
    font-weight: 800;
    margin: 0 0 12px;
    letter-spacing: -1.2px;
    font-family: "PT Serif", serif;
}
.calendar-hero p { max-width: 760px; margin: 0; color: rgba(255,255,255,.9); font-size: 1.08rem; line-height: 1.65; }
.calendar-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; min-width: 300px; }
.calendar-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    border-radius: 999px;
    padding: 10px 16px;
    text-decoration: none;
    font-weight: 800;
    border: 1px solid rgba(255,255,255,.35);
    color: #fff;
    background: rgba(255,255,255,.14);
    backdrop-filter: blur(10px);
    transition: .2s ease;
}
.calendar-btn:hover { color: #fff; background: rgba(255,255,255,.22); transform: translateY(-1px); }
.calendar-btn-light { background: #fff; color: #146c43; }
.calendar-btn-light:hover { background: #f8fafc; color: #146c43; }
.calendar-legend { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0 24px; }
.legend-item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(255,255,255,.72);
    border: 1px solid rgba(255,255,255,.45);
    border-radius: 999px;
    padding: 8px 13px;
    color: #4b5563;
    font-weight: 800;
}
.legend-color { width: 16px; height: 16px; border-radius: 6px; display: inline-block; }
.legend-weekend { background: #fff1f2; }
.legend-holiday { background: #ecfdf5; border: 1px solid rgba(16,185,129,.3); }
.legend-today { background: #dbeafe; border: 1px solid rgba(59,130,246,.35); }
.calendar-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.month-card {
    background: rgba(255,255,255,.82);
    border: 1px solid rgba(255,255,255,.56);
    border-radius: 24px;
    padding: 18px;
    box-shadow: 0 14px 35px rgba(15, 23, 42, .06);
    backdrop-filter: blur(10px);
}
.month-title { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.month-title h2 { font-size: 1.35rem; font-weight: 800; margin: 0; color: #183027; }
.month-title span { font-size: .85rem; color: #6b7280; font-weight: 800; }
.weekdays, .days-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.weekday { text-align: center; font-size: .74rem; color: #6b7280; font-weight: 800; padding: 5px 0; }
.day-cell {
    min-height: 42px;
    border-radius: 13px;
    background: #f8fafc;
    border: 1px solid transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .9rem;
    font-weight: 800;
    position: relative;
}
.day-empty { background: transparent; }
.day-weekend { background: #fff1f2; color: #be123c; }
.day-holiday { background: #ecfdf5; color: #047857; border-color: rgba(16, 185, 129, .3); cursor: help; }
.day-today { background: #dbeafe; color: #1d4ed8; border-color: rgba(59, 130, 246, .35); }
.holiday-dot { position: absolute; width: 6px; height: 6px; border-radius: 50%; background: #10b981; bottom: 6px; right: 7px; }
.holidays-section {
    background: rgba(255,255,255,.82);
    border: 1px solid rgba(255,255,255,.56);
    border-radius: 24px;
    padding: 24px;
    margin-top: 24px;
    box-shadow: 0 14px 35px rgba(15, 23, 42, .06);
}
.holidays-section h2 { margin: 0 0 16px; font-size: 1.6rem; font-weight: 800; color: #183027; }
.holiday-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 0; margin: 0; list-style: none; }
.holiday-list li { background: #f8fafc; border-radius: 16px; padding: 13px 15px; font-weight: 800; color: #1f2937; }
.holiday-list small { display: block; color: #6b7280; font-weight: 700; margin-bottom: 4px; }
.mybreeze-calendar-menu { position: relative; }
.mybreeze-calendar-menu .dropdown-menu { z-index: 5000; border-radius: 14px; padding: 8px; box-shadow: 0 18px 40px rgba(0,0,0,.12); border: 1px solid rgba(25,135,84,.14); }
.mybreeze-calendar-menu .dropdown-item { border-radius: 10px; font-weight: 700; padding: 10px 14px; }
.top-nav, .glass-block, .nav { overflow: visible !important; }
@media (max-width: 1100px) { .calendar-grid, .holiday-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } .calendar-hero { align-items: flex-start; flex-direction: column; } .calendar-actions { justify-content: flex-start; min-width: 0; } }
@media (max-width: 680px) { .calendar-grid, .holiday-list { grid-template-columns: 1fr; } .day-cell { min-height: 39px; font-size: .82rem; border-radius: 11px; } }
@media print {
    @page {
        size: A4 portrait;
        margin: 8mm;
    }

    * {
        box-sizing: border-box !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    html,
    body {
        width: auto !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        background: #fff !important;
        overflow: visible !important;
    }

    header,
    footer,
    .site-header,
    .header,
    .top-header,
    .top-nav,
    .main-menu,
    .navbar,
    .nav,
    .glass-block,
    .no-print,
    .calendar-breadcrumbs,
    .calendar-actions,
    .calendar-legend,
    script {
        display: none !important;
    }

    .container,
    .container-fluid,
    .content,
    .wrapper,
    .calendar-page {
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
        background: #fff !important;
    }

    .calendar-hero {
        display: block !important;
        background: #fff !important;
        color: #000 !important;
        box-shadow: none !important;
        border: 0 !important;
        border-radius: 0 !important;
        padding: 0 0 5mm !important;
        margin: 0 0 5mm !important;
        page-break-after: avoid;
    }

    .calendar-kicker {
        display: none !important;
    }

    .calendar-hero h1 {
        font-size: 22pt !important;
        line-height: 1.1 !important;
        margin: 0 0 2mm !important;
        color: #000 !important;
        letter-spacing: 0 !important;
    }

    .calendar-hero p {
        max-width: none !important;
        font-size: 9pt !important;
        line-height: 1.35 !important;
        color: #333 !important;
        margin: 0 !important;
    }

    .calendar-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 4mm !important;
        width: 100% !important;
        max-width: 100% !important;
        overflow: visible !important;
    }

    .month-card {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        background: #fff !important;
        border: 1px solid #d8e8df !important;
        border-radius: 5mm !important;
        padding: 4mm !important;
        box-shadow: none !important;
        backdrop-filter: none !important;
        overflow: hidden !important;
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }

    .month-title {
        margin-bottom: 2.5mm !important;
    }

    .month-title h2 {
        font-size: 13pt !important;
        line-height: 1.1 !important;
        margin: 0 !important;
        color: #183027 !important;
    }

    .month-title span {
        font-size: 7.5pt !important;
    }

    .weekdays,
    .days-grid {
        display: grid !important;
        grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
        gap: 1.5mm !important;
        width: 100% !important;
    }

    .weekday {
        font-size: 6.5pt !important;
        padding: 1mm 0 !important;
        overflow: hidden !important;
        white-space: nowrap !important;
    }

    .day-cell {
        min-width: 0 !important;
        min-height: 6.3mm !important;
        height: 6.3mm !important;
        border-radius: 3mm !important;
        font-size: 7.2pt !important;
        line-height: 1 !important;
        padding: 0 !important;
    }

    .holiday-dot {
        width: 1.5mm !important;
        height: 1.5mm !important;
        right: 1.2mm !important;
        bottom: 1mm !important;
    }

    .holidays-section {
        width: 100% !important;
        max-width: 100% !important;
        background: #fff !important;
        border: 1px solid #d8e8df !important;
        border-radius: 5mm !important;
        padding: 5mm !important;
        margin-top: 5mm !important;
        box-shadow: none !important;
        backdrop-filter: none !important;
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }

    .holidays-section h2 {
        font-size: 16pt !important;
        margin: 0 0 4mm !important;
    }

    .holiday-list {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 3mm !important;
    }

    .holiday-list li {
        padding: 3mm !important;
        border-radius: 3mm !important;
        font-size: 8.5pt !important;
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }

    .holiday-list small {
        font-size: 7.5pt !important;
    }
}

.calendar-date-selectable {
    cursor: pointer;
    user-select: none;
    transition: transform .16s ease, box-shadow .16s ease, background .16s ease, color .16s ease;
}
.calendar-date-selectable:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(15, 23, 42, .10);
}
.day-range-start,
.day-range-end {
    background: #0f7a5c !important;
    color: #fff !important;
    border-color: #0f7a5c !important;
    box-shadow: 0 8px 20px rgba(15, 122, 92, .24);
}
.day-in-range {
    background: #dff7ee !important;
    color: #0f5132 !important;
    border-color: rgba(15, 122, 92, .18) !important;
}
.calendar-range-panel {
    background: rgba(255,255,255,.86);
    border: 1px solid rgba(255,255,255,.62);
    border-radius: 24px;
    padding: 22px;
    margin: 0 0 24px;
    box-shadow: 0 16px 40px rgba(15, 23, 42, .08);
    backdrop-filter: blur(10px);
    color: #183027;
}
.calendar-range-panel[hidden] {
    display: none !important;
}
.calendar-range-panel-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 16px;
}
.calendar-range-kicker {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 7px 12px;
    background: #ecfdf5;
    color: #047857;
    font-weight: 900;
    font-size: .82rem;
    margin-bottom: 10px;
}
.calendar-range-panel h2 {
    margin: 0;
    font-size: clamp(1.6rem, 4vw, 2.2rem);
    line-height: 1.05;
    font-family: "PT Serif", serif;
    color: #0f5132;
}
.calendar-range-panel-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(220px, .6fr);
    gap: 14px;
    align-items: stretch;
}
.calendar-range-dates {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.calendar-range-dates div,
.calendar-range-result,
.calendar-range-details span {
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    border-radius: 18px;
}
.calendar-range-dates div {
    padding: 14px;
}
.calendar-range-dates span {
    display: block;
    color: #6b7280;
    font-size: .82rem;
    font-weight: 800;
    margin-bottom: 5px;
}
.calendar-range-dates strong {
    display: block;
    font-size: 1rem;
    color: #183027;
}
.calendar-range-result {
    text-align: center;
    padding: 18px 14px;
    background: linear-gradient(135deg, #ecfdf5, #ffffff);
}
.calendar-range-number {
    font-size: clamp(2.2rem, 6vw, 3.8rem);
    line-height: 1;
    color: #0f7a5c;
    font-weight: 900;
    letter-spacing: -2px;
}
.calendar-range-label {
    margin-top: 6px;
    color: #4b5563;
    font-weight: 900;
}
.calendar-range-details {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 14px;
}
.calendar-range-details span {
    display: block;
    padding: 12px 14px;
    color: #4b5563;
    font-weight: 800;
}
.calendar-range-details strong {
    color: #0f5132;
}
.calendar-range-secondary {
    min-height: 42px;
    border-radius: 999px;
    padding: 10px 16px;
    background: #fff;
    color: #0f7a5c;
    border: 1px solid rgba(15,122,92,.24);
    font-weight: 900;
    cursor: pointer;
    white-space: nowrap;
}
@media (max-width: 760px) {
    .calendar-range-panel-head,
    .calendar-range-panel-grid,
    .calendar-range-dates,
    .calendar-range-details {
        grid-template-columns: 1fr;
    }
    .calendar-range-panel-head {
        display: grid;
    }
    .calendar-range-secondary {
        width: 100%;
    }
}
@media print {
    .calendar-range-panel {
        display: none !important;
    }
    .day-in-range,
    .day-range-start,
    .day-range-end {
        box-shadow: none !important;
    }
}
