.calendar-shell {
    --calendar-ink: #193b4d;
    --calendar-muted: #6d7f86;
    --calendar-line: #dce8e6;
    --calendar-teal: #0c7773;
    --calendar-gold: #d6a447;
    width: 100%;
    box-sizing: border-box;
    margin: 0 auto 24px;
    color: var(--calendar-ink);
    font-family: Vazir, Tahoma, Arial, sans-serif;
}
.calendar-shell *, .calendar-shell *:before, .calendar-shell *:after { box-sizing: border-box; }
.calendar-nav-link { display: inline-block; margin: 5px 0 0 7px; padding: 4px 8px; border: 1px solid rgba(126,152,189,.35); border-radius: 999px; color: #173d68 !important; font-size: 11px; text-decoration: none !important; vertical-align: top; }
.calendar-nav-link:hover { color: #fff !important; background: #0c7773; }
.calendar-hero, .calendar-day-hero {
    position: relative;
    overflow: hidden;
    padding: 28px 30px 30px;
    border-radius: 18px;
    color: #fff;
    background: radial-gradient(circle at 10% 20%, rgba(255,255,255,.16), transparent 34%), linear-gradient(135deg, #0b6569, #183c55 72%);
    box-shadow: 0 12px 30px rgba(22, 67, 79, .18);
}
.calendar-hero:after, .calendar-day-hero:after {
    position: absolute;
    left: -22px;
    bottom: -48px;
    width: 190px;
    height: 190px;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 50%;
    content: "";
}
.calendar-eyebrow, .calendar-day-hero > span:not(.calendar-hero-line) {
    position: relative;
    z-index: 1;
    display: inline-block;
    color: #cfe8df;
    font-size: 12px;
    letter-spacing: .1px;
}
.calendar-hero h1, .calendar-day-hero h1 {
    position: relative;
    z-index: 1;
    margin: 8px 0 7px;
    color: #fff;
    font-size: 27px;
    font-weight: 700;
}
.calendar-hero p {
    position: relative;
    z-index: 1;
    max-width: 470px;
    margin: 0 0 20px;
    color: #e5f2ee;
    font-size: 13px;
    line-height: 2;
}
.calendar-today, .calendar-back {
    position: relative;
    z-index: 2;
    display: inline-flex;
    gap: 7px;
    align-items: center;
    padding: 8px 13px;
    border: 1px solid rgba(255,255,255,.35);
    border-radius: 999px;
    color: #fff !important;
    background: rgba(255,255,255,.12);
    font-size: 12px;
    text-decoration: none !important;
}
.calendar-today:hover, .calendar-back:hover { background: rgba(255,255,255,.22); }
.calendar-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    padding: 16px 0 12px;
}
.calendar-controls label { display: inline-flex; gap: 7px; align-items: center; color: var(--calendar-muted); font-size: 12px; }
.calendar-controls select, .calendar-search input {
    height: 37px;
    padding: 0 11px;
    border: 1px solid var(--calendar-line);
    border-radius: 9px;
    outline: none;
    color: var(--calendar-ink);
    background: #fff;
    font: inherit;
    font-size: 12px;
}
.calendar-controls select:focus, .calendar-search input:focus { border-color: var(--calendar-teal); box-shadow: 0 0 0 3px rgba(12,119,115,.12); }
.calendar-search input { width: 165px; }
.calendar-filter-pills { display: flex; flex-wrap: wrap; gap: 6px; width: 100%; }
.calendar-filter-pills button {
    padding: 6px 11px;
    border: 1px solid var(--calendar-line);
    border-radius: 999px;
    color: var(--calendar-muted);
    background: #fff;
    cursor: pointer;
    font: inherit;
    font-size: 11px;
}
.calendar-filter-pills button:hover, .calendar-filter-pills button.active { border-color: var(--calendar-teal); color: #fff; background: var(--calendar-teal); }
.calendar-monthbar { display: flex; align-items: center; justify-content: space-between; margin: 9px 0 12px; }
.calendar-monthbar h2 { margin: 0; color: var(--calendar-ink); font-size: 18px; }
.calendar-monthnav {
    display: inline-flex;
    width: 34px;
    height: 34px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--calendar-line);
    border-radius: 50%;
    color: var(--calendar-teal) !important;
    background: #fff;
    text-decoration: none !important;
}
.calendar-monthnav:hover { color: #fff !important; background: var(--calendar-teal); }
.calendar-weekdays, .calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.calendar-weekdays { margin-bottom: 6px; color: var(--calendar-muted); font-size: 11px; text-align: center; }
.calendar-weekdays span { padding: 5px 0; }
.calendar-empty { min-height: 86px; }
.calendar-day {
    position: relative;
    display: flex;
    min-height: 86px;
    flex-direction: column;
    justify-content: space-between;
    padding: 9px 8px;
    overflow: hidden;
    border: 1px solid var(--calendar-line);
    border-radius: 12px;
    color: var(--calendar-ink) !important;
    background: #fff;
    text-decoration: none !important;
    transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.calendar-day:hover { border-color: #91c9c1; box-shadow: 0 7px 16px rgba(23, 93, 98, .10); transform: translateY(-2px); }
.calendar-day-today { border-color: var(--calendar-teal); background: linear-gradient(180deg, #f0fbf8, #fff); }
.calendar-day-today:before { position: absolute; top: 0; right: 0; left: 0; height: 3px; background: var(--calendar-gold); content: ""; }
.calendar-day-number { font-size: 19px; font-weight: 700; line-height: 1; }
.calendar-lunar { display: block; min-height: 18px; color: var(--calendar-muted); font-size: 9px; line-height: 1.5; }
.calendar-event-count { color: var(--calendar-teal); font-size: 9px; }
.calendar-event-dot { position: absolute; left: 8px; bottom: 9px; width: 6px; height: 6px; border-radius: 50%; background: var(--calendar-gold); }
.calendar-no-event { color: #c6d2d2; font-size: 11px; }
.calendar-no-results { margin: 18px 0; padding: 18px; border: 1px dashed var(--calendar-line); border-radius: 12px; color: var(--calendar-muted); text-align: center; }
.calendar-note { margin: 15px 0 0; color: var(--calendar-muted); font-size: 10px; line-height: 1.9; }
.calendar-day-hero { padding: 22px 26px 25px; }
.calendar-back { margin-bottom: 13px; font-size: 11px; }
.calendar-hero-line { display: inline-block; width: 1px; height: 13px; margin: 0 7px -2px; background: rgba(255,255,255,.4); }
.calendar-day-hero h1 { margin-top: 9px; font-size: 23px; }
.calendar-lunar-large { position: relative; z-index: 1; margin: 0; color: #d5ece6; font-size: 12px; }
.calendar-day-nav { display: flex; justify-content: space-between; gap: 8px; margin: 13px 0 17px; }
.calendar-day-nav a { flex: 1; padding: 9px 7px; border: 1px solid var(--calendar-line); border-radius: 10px; color: var(--calendar-teal) !important; background: #fff; font-size: 11px; text-align: center; text-decoration: none !important; }
.calendar-day-nav a:hover { color: #fff !important; background: var(--calendar-teal); }
.calendar-event-card { margin: 0 0 14px; padding: 19px 20px 20px; border: 1px solid var(--calendar-line); border-radius: 15px; background: #fff; box-shadow: 0 5px 14px rgba(34, 75, 76, .05); }
.calendar-event-heading { display: flex; justify-content: space-between; gap: 10px; align-items: center; margin-bottom: 9px; }
.calendar-event-category { padding: 4px 9px; border-radius: 999px; color: #0b6c68; background: #e8f6f1; font-size: 10px; }
.calendar-event-date { color: var(--calendar-muted); font-size: 10px; }
.calendar-event-card h2 { margin: 0 0 8px; color: var(--calendar-ink); font-size: 19px; line-height: 1.7; }
.calendar-event-summary { margin: 0 0 13px; color: #476169; font-size: 12px; font-weight: 700; line-height: 2; }
.calendar-event-body { padding-top: 12px; border-top: 1px solid #edf3f1; color: #43585e; font-size: 12px; line-height: 2.15; }
.calendar-event-body p { margin: 0 0 8px; }
.calendar-event-related { margin-top: 14px; padding: 11px 13px; border-right: 3px solid var(--calendar-gold); border-radius: 8px; background: #fffaf0; }
.calendar-event-related > span { display: block; margin-bottom: 5px; color: #9a7426; font-size: 10px; }
.calendar-event-related ul { margin: 0; padding: 0 17px 0 0; }
.calendar-event-related li { margin: 3px 0; color: #b08b39; }
.calendar-event-related a { color: var(--calendar-teal) !important; font-size: 11px; text-decoration: none !important; }
.calendar-event-related a:hover { text-decoration: underline !important; }
.calendar-related { margin-top: 20px; padding: 19px 20px; border: 1px solid #eadfbf; border-radius: 15px; background: #fffdf5; }
.calendar-related-heading span { color: #a67a20; font-size: 10px; }
.calendar-related-heading h2 { margin: 3px 0 13px; color: var(--calendar-ink); font-size: 17px; }
.calendar-related ul { margin: 0; padding: 0; list-style: none; }
.calendar-related li { padding: 11px 0; border-top: 1px solid #f0e9d5; }
.calendar-related li:first-child { border-top: 0; }
.calendar-related li a { color: var(--calendar-teal) !important; font-size: 13px; font-weight: 700; text-decoration: none !important; }
.calendar-related li a:hover { text-decoration: underline !important; }
.calendar-related li span { display: block; margin-top: 4px; color: #9a8d6a; font-size: 10px; }
.calendar-related li p { margin: 4px 0 0; color: var(--calendar-muted); font-size: 11px; line-height: 1.8; }
.calendar-empty-state { padding: 40px 25px; border: 1px dashed var(--calendar-line); border-radius: 16px; color: var(--calendar-muted); text-align: center; }
.calendar-empty-icon { display: block; margin-bottom: 10px; color: var(--calendar-gold); font-size: 30px; }
.calendar-empty-state h1, .calendar-empty-state h2 { margin: 0 0 8px; color: var(--calendar-ink); font-size: 20px; }
.calendar-empty-state p { margin: 0 auto 17px; max-width: 430px; font-size: 12px; line-height: 2; }
.calendar-empty-state .calendar-today { color: var(--calendar-teal) !important; border-color: var(--calendar-line); background: #fff; }
@media (max-width: 700px) {
    .calendar-hero, .calendar-day-hero { padding: 23px 20px; border-radius: 14px; }
    .calendar-hero h1, .calendar-day-hero h1 { font-size: 22px; }
    .calendar-controls { align-items: stretch; }
    .calendar-controls label { flex: 1 1 42%; justify-content: space-between; }
    .calendar-search { flex-basis: 100%; }
    .calendar-search input { flex: 1; width: auto; }
    .calendar-day { min-height: 76px; padding: 8px 6px; }
    .calendar-empty { min-height: 76px; }
    .calendar-day-number { font-size: 17px; }
    .calendar-event-count { font-size: 8px; }
}
.calendar-data-notice { margin: 20px 0; padding: 18px 22px; background: #fff7e7; border: 1px solid #e8c98c; border-radius: 16px; color: #775320; line-height: 1.9; }
.calendar-data-notice p { margin: 6px 0 0; }
.calendar-data-unavailable { font-size: 11px; color: #89602b; margin-top: 8px; }
.calendar-api-source { margin-top: 24px; padding-top: 18px; border-top: 1px solid #e3e9e6; display: flex; align-items: center; flex-wrap: wrap; gap: 10px; font-size: 13px; }
.calendar-api-source small { flex-basis: 100%; line-height: 1.8; color: #68766f; }
.calendar-api-source a { color: #286b55; }
.calendar-api-status { padding: 5px 12px; border-radius: 999px; background: #edf4ee; color: #336448; font-weight: 600; }
