.club-calendar { width: 100%; max-width: none; margin: 0 auto 28px; }
body:has(.calendar-public-page) main { max-width: var(--player-page-max-width); }
.calendar-public-page { background: none; box-shadow: none; border-radius: 0; padding: 0; overflow: visible; }
.calendar-public-page.calendar-suggestions-open { padding-bottom: 400px; }
.calendar-eligibility { margin-top: 36px; }
.calendar-eligibility h2 { margin: 0 0 12px; font-size: clamp(21px, 5vw, 28px); }
.calendar-eligibility-search { width: 100%; max-width: none; margin: 0; padding: 0; }
.calendar-eligibility-search .search-ui-field { height: 48px; }
.calendar-player-suggestions.autocomplete-items { position: absolute; z-index: 999; top: calc(100% + 4px); right: -58px; left: 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; border: 1px solid var(--mp-border-color, rgba(255,255,255,.14)); border-radius: 10px; background: var(--mp-field-background-color, rgba(0,0,0,.3)); box-shadow: 0 8px 24px rgba(0,0,0,.28); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.calendar-player-suggestions[hidden] { display: none; }
.calendar-player-option.autocomplete-item { display: flex; width: 100%; min-height: 44px; align-items: center; gap: 10px; padding: 10px 14px; border: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.calendar-player-option + .calendar-player-option { border-top: 1px solid var(--mp-border-color, rgba(255,255,255,.08)); }
.calendar-player-skeleton { display: flex; min-height: 44px; align-items: center; gap: 10px; padding: 10px 14px; }
.calendar-player-skeleton-badge { width: 24px; height: 24px; flex: 0 0 24px; margin: 0; }
.calendar-player-skeleton-name { width: 58%; height: 14px; margin: 0; }
.calendar-player-skeleton:nth-child(2) .calendar-player-skeleton-name { width: 72%; }
.calendar-player-skeleton:nth-child(3) .calendar-player-skeleton-name { width: 46%; }
.calendar-player-badge { display: inline-flex; width: 70px; height: 24px; flex: 0 0 70px; align-items: center; justify-content: flex-start; overflow: visible; color: var(--mp-text-tertiary-color, #bbbaba); }
.calendar-player-badge .trophy { height: 22px; }
.calendar-player-badge .trophy .championship-count { top: 50%; left: 10px; transform: translate(-50%, -50%); }
.calendar-player-badge .material-icons { font-size: 20px; }
.calendar-eligibility-search input:focus-visible, .calendar-player-option:focus-visible { outline: 2px solid #e2492d; outline-offset: 2px; }
.calendar-player-option:hover, .calendar-player-option:focus-visible { background: rgba(255,255,255,.08); }
.calendar-eligibility-status { min-height: 1.4em; margin: 10px 0; color: var(--mp-text-secondary-color, #b9b1bd); }
.calendar-eligibility-status:empty { display: none; }
.calendar-eligibility-days { margin-top: 16px; }
.calendar-eligibility-day + .calendar-eligibility-day { margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.1); }
.calendar-eligibility-day > h3 { margin: 0 0 10px; font-size: 18.72px; text-transform: none; }
.calendar-eligibility-reason { color: var(--mp-text-secondary-color, #b9b1bd); font-size: 12px; line-height: 1.35; white-space: normal; }
.calendar-eligibility-time { text-transform: none; }
.calendar-eligibility-calendar-link { display: flex; width: fit-content; margin: 8px auto 0 0; padding: 6px 10px; border: 1px solid var(--mp-border-color, rgba(255,255,255,.14)); border-radius: 999px; background: var(--mp-field-background-color, rgba(0,0,0,.3)); color: inherit; font-size: 12px; text-decoration: none; }
.calendar-eligibility-calendar-link:hover, .calendar-eligibility-calendar-link:focus-visible { background: var(--mp-button-hover-background-color, rgba(255,255,255,.08)); }
.calendar-eligibility-skeleton-line { height: 16px; margin: 8px 0; }
.calendar-eligibility-skeleton-line:first-child { width: 42%; }
.calendar-eligibility-skeleton-line:nth-child(2) { width: 100%; }
.calendar-eligibility-skeleton-line:nth-child(3) { width: 70%; }
.club-calendar h1 { margin: 0 0 6px; font-size: clamp(25px, 6vw, 36px); }
.calendar-intro, .calendar-admin-note { margin: 6px 0 14px; color: var(--mp-text-secondary-color, #b9b1bd); }
.calendar-view-switch { display: flex; gap: 8px; margin: 18px 0 12px; }
.calendar-view-switch button, .calendar-month-nav button {
    border: 1px solid rgba(255,255,255,.14); border-radius: 999px; padding: 9px 16px;
    color: inherit; background: rgba(255,255,255,.06); cursor: pointer;
}
.calendar-view-switch button[aria-pressed="true"] { background: #a10f08; border-color: #d74632; }
.calendar-day-group { padding: 15px 16px; margin: 10px 0; }
.calendar-day-heading { margin: 0 0 10px; font-size: 19px; text-transform: capitalize; }
.calendar-game { padding: 11px 0; border-top: 1px solid rgba(255,255,255,.09); }
.calendar-game:first-of-type { border-top: 0; }
.calendar-game-header { display: flex; align-items: center; gap: 12px; }
.calendar-format-icon { width: 38px; height: 38px; object-fit: contain; flex: 0 0 38px; }
.calendar-game-main { flex: 1; min-width: 0; }
.calendar-game-title { margin: 0; font-size: 17px; line-height: 1.2; overflow-wrap: anywhere; }
.calendar-game-toggle-label { display: flex; min-width: 0; flex: 1; flex-direction: column; align-items: flex-start; gap: 5px; }
.calendar-game-title-text { display: block; min-width: 0; overflow-wrap: anywhere; }
.calendar-game-toggle {
    display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 8px; padding: 0;
    border: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer;
}
.calendar-game-toggle:focus-visible { outline: 2px solid #e2492d; outline-offset: 3px; border-radius: 4px; }
.calendar-game-expand-icon { flex: 0 0 auto; color: var(--mp-text-secondary-color, #b9b1bd); transition: transform .18s ease; }
.calendar-game-toggle[aria-expanded="true"] .calendar-game-expand-icon { transform: rotate(180deg); }
.calendar-game-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin: 0; font-size: 12px; color: var(--mp-text-secondary-color, #b9b1bd); }
.calendar-game-details {
    display: grid; grid-template-rows: 0fr; margin: 0; padding-top: 0; overflow: hidden;
    border-top: 1px solid transparent; opacity: 0;
    transition: grid-template-rows .25s ease, margin-top .25s ease, padding-top .25s ease, border-color .25s ease, opacity .2s ease;
}
.calendar-game-details-inner { min-height: 0; overflow: hidden; }
.calendar-game-expanded .calendar-game-details {
    grid-template-rows: 1fr; margin-top: 12px; padding-top: 12px; border-top-color: rgba(255,255,255,.09); opacity: 1;
}
.calendar-description-layout { display: grid; gap: 18px; }
.calendar-description-eyebrow {
    margin: 0 0 7px; color: #df8b77; font-size: 10px; font-weight: 800;
    letter-spacing: .12em; line-height: 1.3; text-transform: uppercase;
}
.calendar-description-section { min-width: 0; }
.calendar-description-section > .calendar-description-eyebrow { margin-bottom: 8px; }
.calendar-description-preview-output { margin-top: 12px; }
#calendar_description_preview_card .card-content { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
#calendar_description_preview_card .form-group { width: min(100%, 420px); }
.calendar-description-overview { margin: 0; line-height: 1.45; }
.calendar-regular-description-list { margin: 0; padding-left: 19px; }
.calendar-description-section > p + ul { margin-top: 8px; }
.calendar-regular-description-list li + li { margin-top: 8px; }
.calendar-qualification-list, .calendar-game-facts-list { margin: 0; padding-left: 19px; }
.calendar-qualification-list li + li { margin-top: 11px; }
.calendar-game-facts-list li + li { margin-top: 5px; }
.calendar-description-note, .calendar-game-description-note { margin: 8px 0 0; color: var(--mp-text-secondary-color, #b9b1bd); font-size: 12px; line-height: 1.45; }
.calendar-prize-section > .calendar-description-note { margin: 0 0 12px; color: inherit; font-size: inherit; }
.calendar-prize-intro { margin: 0 0 14px; color: inherit; font-size: inherit; }
.calendar-prize-section > .calendar-compact-table-wrap + .calendar-description-note { margin: 12px 0 0; }
.calendar-prize-section > .calendar-blind-schedule { margin-top: 0; }
.calendar-description-eyebrow > .calendar-prize-toggle { display: inline-flex; width: auto; justify-content: flex-start; gap: 4px; margin: 0; color: inherit; font: inherit; letter-spacing: inherit; text-transform: inherit; }
.calendar-prize-toggle .calendar-blind-schedule-icon, .calendar-blinds-icon { font-size: 18px; }
.calendar-prize-group-title { margin: 0 0 8px; font-size: inherit; font-weight: 400; }
.calendar-compact-table-wrap + .calendar-prize-group-title { margin-top: 20px; }
.calendar-candidates-link { display: inline-flex; box-sizing: border-box; max-width: 100%; margin: 8px 0 0; white-space: normal; line-height: 1.3; }
.calendar-compact-table-wrap { box-sizing: border-box; width: 100%; max-width: 640px; overflow-x: auto; border: 1px solid rgba(255,255,255,.1); border-radius: 10px; }
.calendar-compact-table { width: 100%; border-collapse: collapse; font-size: 12px; font-variant-numeric: tabular-nums; }
.calendar-compact-table th, .calendar-compact-table td { padding: 7px 9px; text-align: left; white-space: nowrap; }
.calendar-compact-table thead { color: var(--mp-text-secondary-color, #b9b1bd); font-size: 9px; font-weight: 600; letter-spacing: 0; text-transform: none; }
.calendar-compact-table tbody tr + tr { border-top: 1px solid rgba(255,255,255,.07); }
.calendar-compact-table tbody th { font-weight: 700; }
.calendar-prizes-table th:last-child, .calendar-prizes-table td:last-child { text-align: right; }
.calendar-prize-winner { color: #f0c56e; }
.calendar-blind-schedule { margin-top: 9px; }
.calendar-blind-schedule-toggle {
    display: inline-flex; align-items: center; gap: 4px; padding: 0; border: 0;
    background: transparent; color: var(--mp-text-secondary-color, #b9b1bd); font: inherit; font-size: 12px; cursor: pointer;
}
.calendar-blind-schedule-toggle:focus-visible { outline: 2px solid #e2492d; outline-offset: 3px; border-radius: 3px; }
.calendar-blind-schedule-icon { transition: transform .2s ease; }
.calendar-blind-schedule-toggle[aria-expanded="true"] .calendar-blind-schedule-icon { transform: rotate(180deg); }
.calendar-blind-schedule-content {
    display: grid; grid-template-rows: 0fr; margin-top: 0; overflow: hidden; opacity: 0;
    transition: grid-template-rows .25s ease, margin-top .25s ease, opacity .2s ease;
}
.calendar-blind-schedule-inner { min-height: 0; overflow: hidden; }
.calendar-blind-schedule-expanded .calendar-blind-schedule-content { grid-template-rows: 1fr; margin-top: 7px; opacity: 1; }
.calendar-blinds-table th, .calendar-blinds-table td { padding: 6px 7px; }
.calendar-artifact-card {
    display: flex; align-items: center; gap: 10px; min-width: 0; padding: 10px;
    border: 0; border-radius: 11px; background: rgba(255,255,255,.035);
}
.calendar-artifact-card img { width: 38px; height: 38px; flex: 0 0 38px; object-fit: contain; }
.calendar-friday-award img { width: 58px; height: 58px; flex: 0 0 58px; }
.calendar-artifact-card + .calendar-artifact-card { margin-top: 8px; }
.calendar-friday-mug { box-sizing: border-box; height: 78px; padding: 8px 10px 0; overflow: hidden; }
.calendar-friday-mug img { width: 50px; height: 100px; flex: 0 0 50px; align-self: flex-start; }
.calendar-doll-card img { width: 48px; height: 48px; flex: 0 0 48px; object-fit: contain; }
.calendar-ticket-card .material-icons, .calendar-doll-card .material-icons { width: 38px; flex: 0 0 38px; font-size: 30px; text-align: center; }
.calendar-doll-card p { margin: 4px 0 0; color: var(--mp-text-secondary-color, #b9b1bd); font-size: 12px; line-height: 1.4; }
.calendar-artifact-card strong { font-size: 13px; }
.calendar-award-card { color: inherit; text-decoration: none; }
.calendar-award-card:hover strong { text-decoration: underline; }
.calendar-description-section a:not(.btn) { color: inherit; text-underline-offset: 2px; }
.calendar-qualification-list a { text-decoration: underline; }
.calendar-description-section a.calendar-description-text-link { text-decoration: underline; }
.calendar-participants-disclosure { margin-top: 8px; }
.calendar-participants-disclosure > summary { color: var(--mp-text-secondary-color, #b9b1bd); font-size: 12px; font-weight: 600; cursor: pointer; }
.calendar-participants-disclosure > .calendar-compact-table-wrap { margin-top: 8px; }
.calendar-participant-group-title { margin: 10px 0 4px; color: var(--mp-text-secondary-color, #b9b1bd); font-size: 12px; }
.calendar-participant-list { margin: 0; padding-left: 18px; font-size: 12px; line-height: 1.45; }
.calendar-kind-tag {
    display: inline-flex; align-items: center; width: fit-content; padding: 2px 7px;
    border: 1px solid rgba(255,255,255,.14); border-radius: 999px;
    background: rgba(255,255,255,.045); font-size: 11px; line-height: 1.25; white-space: nowrap;
}
.calendar-game-status-tag { border-color: rgba(122,205,151,.28); background: rgba(122,205,151,.08); color: #a7d8b6; }
.calendar-game-actions { display: flex; align-items: center; gap: 6px; flex: 0 0 auto; }
.calendar-event-edit-button {
    display: inline-grid; place-items: center; width: 34px; height: 34px; padding: 0;
    border: 1px solid rgba(255,255,255,.14); border-radius: 50%; background: rgba(255,255,255,.06);
    color: inherit; cursor: pointer;
}
.calendar-event-visibility-button {
    border: 1px solid rgba(255,255,255,.14); border-radius: 999px; padding: 7px 11px;
    color: inherit; background: rgba(255,255,255,.06); cursor: pointer;
}
.calendar-event-edit-form {
    display: grid; grid-template-columns: minmax(0, 1fr); align-items: stretch; gap: 10px;
    padding: 12px; margin: 7px 0 12px; border: 1px solid rgba(255,255,255,.12); border-radius: 12px;
}
.calendar-event-edit-form .form-group { margin: 0; min-width: 0; }
.calendar-event-edit-form .calendar-about-field { grid-column: 1 / -1; }
.calendar-event-edit-form label { display: block; margin-bottom: 5px; }
.calendar-event-edit-actions { display: flex; gap: 8px; }
.calendar-hidden-event { opacity: .55; }
.calendar-date-event-icon.calendar-past-event { opacity: .32; }
.calendar-date-event-icon.calendar-past-event.calendar-date-event-hidden { opacity: .22; }
.calendar-empty { padding: 22px; text-align: center; }
.calendar-admin-display-toggle { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 6px; margin: 0 0 8px; }
.calendar-admin-display-toggle button {
    padding: 4px 10px; border: 1px solid rgba(255,255,255,.16); border-radius: 999px;
    background: rgba(255,255,255,.04); color: inherit; font: inherit; font-size: 12px; line-height: 1.25; cursor: pointer;
}
.calendar-admin-display-toggle button[aria-pressed="true"] { border-color: #d74632; background: #a10f08; color: #fff; }
.calendar-month-nav { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 14px; }
.calendar-month-nav button {
    display: grid; place-items: center; flex: 0 0 32px; width: 32px; height: 32px; padding: 0;
    border-radius: 50%; line-height: 1;
}
.calendar-month-nav button .material-icons { font-size: 19px; }
.calendar-month-nav h2 { margin: 0; font-size: 20px; text-align: center; }
.calendar-weekdays, .calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 0; }
.calendar-weekdays {
    margin-bottom: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.12); border-bottom: 0;
    border-radius: 10px 10px 0 0; text-align: center; color: var(--mp-text-secondary-color, #b9b1bd); font-size: 12px;
}
.calendar-weekdays > span {
    display: flex; min-width: 0; flex-direction: column; align-items: flex-end; gap: 3px;
    padding: 6px 6px 5px 3px; border-right: 1px solid rgba(255,255,255,.1); text-align: right;
}
.calendar-weekdays > span:last-child { border-right: 0; }
.calendar-weekday-label { line-height: 1.2; }
.calendar-weekday-icons { display: flex; min-height: 15px; flex-wrap: wrap; justify-content: flex-end; gap: 1px; max-width: 100%; }
.calendar-weekday-icons img { display: block; width: 15px; height: 15px; object-fit: contain; }
.calendar-weekdays > span.selected {
    background: rgba(226,73,45,.12); box-shadow: inset 0 0 0 1px rgba(226,73,45,.7);
    color: #fff; border-radius: 0;
}
.calendar-date {
    position: relative; display: flex; flex-direction: column; align-items: stretch; gap: 4px; min-width: 0; min-height: 72px;
    padding: 6px; border: 0; border-right: 1px solid rgba(255,255,255,.14); border-bottom: 1px solid rgba(255,255,255,.14);
    border-radius: 0; background: rgba(255,255,255,.04); color: inherit; font: inherit; text-align: left; cursor: pointer;
}
.calendar-date.calendar-guide-cell::before {
    position: absolute; z-index: 0; top: -1px; bottom: -1px; left: 50%;
    border-left: 1px dashed rgba(226,73,45,.55); content: ''; pointer-events: none;
}
.calendar-date-number, .calendar-date-icons { position: relative; z-index: 1; }
.calendar-grid { overflow: hidden; border: 1px solid rgba(255,255,255,.12); border-radius: 0 0 10px 10px; }
.calendar-date:nth-child(7n) { border-right: 0; }
.calendar-date:nth-last-child(-n + 7) { border-bottom: 0; }
.calendar-date:disabled { cursor: default; }
.calendar-date.has-events { background: rgba(255,255,255,.06); }
.calendar-date.selected {
    position: relative; z-index: 1; outline: none !important;
    box-shadow: inset 0 0 0 2px #e2492d !important; background: rgba(255,255,255,.035) !important;
}
.calendar-date-adjacent { opacity: .34; }
.calendar-date-adjacent.selected { box-shadow: none !important; }
.calendar-date-out-of-range .calendar-date-number, .calendar-date-out-of-range .calendar-date-icons { opacity: .3; }
.calendar-date-number { align-self: flex-end; font-size: 13px; line-height: 1; }
.calendar-date-icons { display: flex; flex-wrap: wrap; align-content: flex-start; align-items: center; gap: 3px; max-width: 100%; max-height: 42px; overflow: hidden; }
.calendar-date-event-icon { display: block; flex: 0 0 20px; width: 20px; height: 20px; object-fit: contain; }
.calendar-date-event-hidden { opacity: .38; filter: grayscale(1); }
.calendar-date-special-icon { color: #c9c7ca; font-size: 19px; line-height: 20px; text-align: center; text-shadow: 0 1px 2px #000; }
.calendar-skeleton-cell { cursor: default; pointer-events: none; }
.calendar-skeleton-bar, .calendar-skeleton-icon {
    display: block; border-radius: 6px; background: linear-gradient(100deg, rgba(255,255,255,.05) 35%, rgba(255,255,255,.12) 50%, rgba(255,255,255,.05) 65%);
    background-size: 200% 100%; animation: calendar-skeleton-pulse 1.5s linear infinite;
}
.calendar-skeleton-cell .calendar-skeleton-bar { align-self: flex-end; width: 18px; height: 13px; }
.calendar-skeleton-icon { width: 23px; height: 23px; margin-top: 5px; }
.calendar-skeleton-day { display: grid; gap: 12px; margin-top: 18px; }
.calendar-skeleton-day .calendar-skeleton-bar { width: 50%; height: 24px; }
.calendar-skeleton-day .calendar-skeleton-bar:nth-child(2) { width: 100%; height: 52px; }
.calendar-skeleton-day .calendar-skeleton-bar:nth-child(3) { width: 75%; height: 22px; }
.calendar-load-error { grid-column: 1 / -1; padding: 20px; text-align: center; }
.calendar-load-error button { margin-top: 10px; }
@keyframes calendar-skeleton-pulse { to { background-position-x: -200%; } }
.calendar-selected-day { margin-top: 14px; }
.calendar-selected-day h3 { margin: 0 0 5px; }
.calendar-day-info {
    margin: 10px 0 13px; padding: 11px 12px; border: 1px solid rgba(255,255,255,.09);
    border-radius: 11px; background: rgba(255,255,255,.035);
}
.calendar-day-info-list { display: grid; gap: 14px; max-width: 680px; margin: 0; padding: 0; list-style: none; }
.calendar-day-info-step { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 8px; }
.calendar-day-info-stack { width: 34px; height: 34px; object-fit: contain; }
.calendar-day-info-title { display: block; font-size: 14px; line-height: 1.35; }
.calendar-day-info-copy { margin: 3px 0 0; font-size: 13px; line-height: 1.45; }
.calendar-day-info-highlight { margin: 13px 0 0; color: var(--mp-text-secondary-color, #b9b1bd); font-size: 13px; line-height: 1.45; }
.calendar-day-info-note { margin: 14px 0 0; color: var(--mp-text-secondary-color, #b9b1bd); font-size: 14px; line-height: 1.45; }
.calendar-selected-day .calendar-game { padding: 8px 0; }
.calendar-afisha-link { display: inline-flex; align-items: center; width: fit-content; max-width: 100%; box-sizing: border-box; margin: 12px 0 0; padding: 6px 12px; font-size: 12px; line-height: 1.2; white-space: nowrap; }

.calendar-admin { width: 100%; max-width: none; margin: 0 0 24px; }
.calendar-admin > .card { padding: 18px; margin: 12px 0; scroll-margin-top: 16px; }
.calendar-admin-calendar { width: 100%; max-width: none; margin: 0 0 16px; }
.calendar-admin > .calendar-admin-calendar { margin: 0 0 16px; }
.calendar-admin-calendar-toolbar { display: flex; align-items: center; justify-content: flex-end; gap: 12px; margin-bottom: 14px; }
.calendar-admin-calendar-toolbar .calendar-view-switch { margin: 0; }
.calendar-admin-quick-actions { display: flex; align-items: center; width: 100%; gap: 8px; }
.calendar-admin-quick-actions .btn { padding: 8px 12px; font-size: .9rem; }
.calendar-admin-quick-actions .calendar-schedule-settings-toggle {
    display: inline-grid; place-items: center; flex: 0 0 36px; width: 36px; height: 36px;
    margin: 0 0 0 auto; padding: 0; border-radius: 50%;
}
.calendar-schedule-settings-toggle .material-icons { font-size: 20px; }
.calendar-admin-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.calendar-admin-form .form-group { margin: 0; }
.calendar-admin-form .calendar-beneficiary-field[hidden] { display: none; }
.calendar-admin-form .calendar-about-field[hidden] { display: none; }
.calendar-about-field textarea { display: block; box-sizing: border-box; width: 100%; }
.calendar-admin-form .wide { grid-column: 1 / -1; }
.calendar-admin input, .calendar-admin select { width: 100%; }
.calendar-rule-list { display: grid; gap: 10px; margin-top: 14px; }
.calendar-rule { border: 1px solid rgba(255,255,255,.12); border-radius: 12px; padding: 12px; }
.calendar-rule { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.calendar-rule p { margin: 3px 0; }
.calendar-recent-list { display: grid; gap: 10px; margin-top: 14px; }
.calendar-recent-event { display: flex; justify-content: space-between; align-items: center; gap: 12px; border: 1px solid rgba(255,255,255,.12); border-radius: 12px; padding: 12px; }
.calendar-recent-event p { margin: 3px 0 0; color: var(--mp-text-secondary-color, #b9b1bd); font-size: 13px; }
.calendar-rule-disabled { opacity: .55; }
.calendar-admin-form label { display: block; margin-bottom: 5px; }
.calendar-admin-message { min-height: 20px; margin: 8px 0 0; }
.calendar-admin-message.error { color: #ff8a80; }
.calendar-admin-message.success { color: #9ce2a5; }
.calendar-admin-section > summary { cursor: pointer; font-size: 20px; font-weight: 700; }
.calendar-admin-section[open] > summary { margin-bottom: 12px; }

@media (max-width: 700px) {
    .calendar-admin-calendar-toolbar { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 480px) {
    .calendar-day-group { padding: 12px; }
    .calendar-game-header { gap: 9px; }
    .calendar-format-icon { width: 32px; height: 32px; flex-basis: 32px; }
    .calendar-game-title { font-size: 15px; }
    .calendar-compact-table th, .calendar-compact-table td { padding: 6px 7px; }
    .calendar-game-actions { flex-wrap: wrap; justify-content: flex-end; }
    .calendar-date { min-height: 58px; padding: 4px; gap: 3px; }
    .calendar-weekdays > span { padding-right: 4px; }
    .calendar-weekday-icons { min-height: 13px; gap: 0; }
    .calendar-weekday-icons img { width: 13px; height: 13px; }
    .calendar-date-number { font-size: 12px; }
    .calendar-date-icons { max-height: 40px; gap: 2px; }
    .calendar-date-event-icon { flex-basis: 18px; width: 18px; height: 18px; }
    .calendar-date-special-icon { font-size: 17px; line-height: 18px; }
    .calendar-month-nav button { flex-basis: 30px; width: 30px; height: 30px; }
    .calendar-month-nav button .material-icons { font-size: 18px; }
    .calendar-admin > .card { padding: 14px; }
    .calendar-admin-form { grid-template-columns: 1fr; }
    .calendar-admin-form .wide { grid-column: auto; }
    .calendar-rule { align-items: flex-start; flex-direction: column; }
    .calendar-recent-event { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
    .calendar-game-details, .calendar-game-expand-icon, .calendar-blind-schedule-content, .calendar-blind-schedule-icon { transition: none; }
    .calendar-skeleton-bar, .calendar-skeleton-icon { animation: none; }
}
