/* «Календарь» важных дат (Сабина 09.10.2026, Izi.CRM #4198 п. 4) — calendar.js (window.CAL), панель #calendarTab.
   Цвета событий: клиенты — синий, сотрудники — розовый, компания — фиолетовый, праздники — янтарный; «горит» — красный;
   рассылки (Алекс 12.10.2026: «событие = рассылка») — бирюзовые плашки внизу клетки, выключенные и отменённые — серые. */
.cal, .cal-sched, .cal-dd { --cal-client: #2563eb; --cal-staff: #db2777; --cal-company: #7c3aed; --cal-holiday: #d97706; --cal-hot: #dc2626; --cal-mail: #0d9488; --cal-ok: #16a34a; --cal-warn: #d97706;
    --cal-client-bg: rgba(37, 99, 235, .1); --cal-staff-bg: rgba(219, 39, 119, .1); --cal-company-bg: rgba(124, 58, 237, .1); --cal-holiday-bg: rgba(217, 119, 6, .12); --cal-hot-bg: rgba(220, 38, 38, .1);
    --cal-mail-bg: rgba(13, 148, 136, .1); }
.cal { display: flex; flex-direction: column; gap: 12px; padding: 16px 20px 24px; color: var(--text-color); }
body[data-theme="dark"] .cal, body[data-theme="dark"] .cal-sched, body[data-theme="dark"] .cal-dd { --cal-client: #93c5fd; --cal-staff: #f9a8d4; --cal-company: #c4b5fd; --cal-holiday: #fcd34d; --cal-hot: #fca5a5; --cal-mail: #5eead4; --cal-ok: #4ade80; --cal-warn: #fbbf24;
    --cal-client-bg: rgba(147, 197, 253, .14); --cal-staff-bg: rgba(249, 168, 212, .14); --cal-company-bg: rgba(196, 181, 253, .14); --cal-holiday-bg: rgba(252, 211, 77, .14); --cal-hot-bg: rgba(248, 113, 113, .16);
    --cal-mail-bg: rgba(94, 234, 212, .13); }

.cal-head { display: flex; align-items: center; gap: 12px 18px; flex-wrap: wrap; }
.cal-title { display: flex; align-items: center; gap: 10px; font-size: 20px; font-weight: 700; }
.cal-title svg { color: var(--primary-color); }
.cal-nav { display: flex; align-items: center; gap: 6px; }
.cal-month { min-width: 150px; text-align: center; font-size: 15px; font-weight: 700; }
.cal-actions { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-left: auto; }
.cal-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 32px; height: 32px; padding: 0 8px; border: 1px solid var(--border-color);
    border-radius: 8px; background: var(--card-bg); color: var(--text-color); font: inherit; font-size: 13px; cursor: pointer; }
.cal-btn:hover { border-color: var(--primary-color); color: var(--primary-color); }
.cal-btn.txt { padding: 0 12px; }
.cal-btn.small { height: 28px; font-size: 12.5px; }
.cal-btn svg { flex: none; }
.cal-btn.primary { background: var(--primary-color); border-color: var(--primary-color); color: #fff; font-weight: 600; }
.cal-btn.primary:hover { color: #fff; filter: brightness(1.1); }
.cal-btn.danger { color: var(--danger-color); }
.cal-btn.danger:hover { border-color: var(--danger-color); background: var(--danger-color); color: #fff; }
.cal-btn.big { height: 38px; padding: 0 18px; font-size: 14px; }
.cal-btn:disabled, .cal-btn:disabled:hover { opacity: .5; cursor: not-allowed; filter: none; }

.cal-filters { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.cal-flt { display: inline-flex; align-items: center; cursor: pointer; user-select: none; }
.cal-flt input { display: none; }
.cal-flt span { display: inline-flex; align-items: center; gap: 6px; padding: 4px 11px; border-radius: 999px; border: 1px solid var(--border-color); font-size: 12.5px; color: var(--text-muted); background: var(--card-bg); }
.cal-flt input:checked + span { color: var(--text-color); font-weight: 600; }
.cal-flt.t-client input:checked + span { border-color: var(--cal-client); background: var(--cal-client-bg); }
.cal-flt.t-staff input:checked + span { border-color: var(--cal-staff); background: var(--cal-staff-bg); }
.cal-flt.t-company input:checked + span { border-color: var(--cal-company); background: var(--cal-company-bg); }
.cal-flt.t-holiday input:checked + span { border-color: var(--cal-holiday); background: var(--cal-holiday-bg); }
.cal-flt.t-mailing input:checked + span { border-color: var(--cal-mail); background: var(--cal-mail-bg); }
.cal-flt.sub span { padding: 3px 10px; border-style: dashed; font-size: 12px; }
.cal-flt.sub input:checked + span { border-color: var(--cal-mail); color: var(--text-color); font-weight: 500; }
.cal-flt.mine input:checked + span { border-color: var(--primary-color); background: var(--primary-light); }
.cal-loading, .cal-hint { font-size: 12px; color: var(--text-muted); line-height: 1.5; }
.cal-err { font-size: 12.5px; color: var(--danger-color); }
.cal-empty { font-size: 13px; color: var(--text-muted); padding: 8px 2px; }

.cal-body { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 16px; align-items: start; }
.cal-grid-wrap { border: 1px solid var(--border-color); border-radius: 12px; background: var(--card-bg); overflow: hidden; }
.cal-wd { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); background: var(--surface-bg); border-bottom: 1px solid var(--border-color); }
.cal-wd div { padding: 7px 8px; font-size: 11px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; color: var(--text-muted); }
.cal-wd div.we { color: var(--danger-color); }
.cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.cal-cell { min-height: 96px; padding: 5px 6px; border-right: 1px solid var(--border-light); border-bottom: 1px solid var(--border-light); cursor: pointer; display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.cal-cell:nth-child(7n) { border-right: none; }
.cal-cell:hover { background: var(--hover-bg); }
.cal-cell.other { background: var(--surface-bg); }
.cal-cell.other .cal-day span { color: var(--text-secondary); }
.cal-cell.sel { box-shadow: inset 0 0 0 2px var(--primary-color); }
.cal-day { display: flex; align-items: center; justify-content: space-between; font-size: 12.5px; font-weight: 600; }
.cal-cell.today .cal-day span { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; padding: 0 5px; border-radius: 999px; background: var(--primary-color); color: #fff; }
.cal-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--cal-hot); box-shadow: 0 0 0 3px var(--cal-hot-bg); }
.cal-chips { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.cal-chip { display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: left; padding: 1px 6px; border: none; border-left: 3px solid; border-radius: 4px;
    font: inherit; font-size: 11.5px; line-height: 1.5; cursor: pointer; color: var(--text-color); }
.cal-chip.t-client { border-color: var(--cal-client); background: var(--cal-client-bg); }
.cal-chip.t-staff { border-color: var(--cal-staff); background: var(--cal-staff-bg); }
.cal-chip.t-company { border-color: var(--cal-company); background: var(--cal-company-bg); }
.cal-chip.t-holiday { border-color: var(--cal-holiday); background: var(--cal-holiday-bg); }
.cal-chip.hot { border-color: var(--cal-hot); background: var(--cal-hot-bg); font-weight: 600; }
.cal-more { font-size: 11px; color: var(--text-muted); padding-left: 4px; }

/* рассылки — плашки внизу клетки: время, значок вида, название */
.cal-mails { display: flex; flex-direction: column; gap: 2px; margin-top: auto; padding-top: 2px; min-width: 0; }
.cal-mail { display: flex; align-items: center; gap: 4px; max-width: 100%; min-width: 0; padding: 1px 6px; border: 1px solid transparent; border-radius: 6px; background: var(--cal-mail-bg);
    color: var(--text-color); font: inherit; font-size: 11px; line-height: 1.5; text-align: left; cursor: pointer; }
.cal-mail svg { flex: none; color: var(--cal-mail); }
.cal-mail b { flex: none; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--cal-mail); }
.cal-mail span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cal-mail:hover { border-color: var(--cal-mail); }
.cal-mail.on { box-shadow: 0 0 0 2px var(--cal-mail); }
.cal-mail.st-scheduled { background: var(--card-bg); border-color: var(--cal-mail); }
.cal-mail.st-running, .cal-mail.st-waiting { border-style: dashed; border-color: var(--cal-mail); }
.cal-mail.st-partial { border-color: var(--cal-warn); }
.cal-mail.st-failed { border-color: var(--cal-hot); background: var(--cal-hot-bg); }
.cal-mail.st-failed svg, .cal-mail.st-failed b { color: var(--cal-hot); }
.cal-mail.st-off, .cal-mail.st-cancelled, .cal-mail.st-nobody { background: transparent; border: 1px dashed var(--border-color); color: var(--text-muted); }
.cal-mail.st-off svg, .cal-mail.st-off b, .cal-mail.st-cancelled svg, .cal-mail.st-cancelled b, .cal-mail.st-nobody svg, .cal-mail.st-nobody b { color: var(--text-muted); }
.cal-mail.st-cancelled span { text-decoration: line-through; }

.cal-sel { border-top: 1px solid var(--border-color); padding: 12px 14px; display: flex; flex-direction: column; gap: 8px; }
.cal-sel-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 14px; }
.cal-sel-acts { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 4px 0 0 34px; }
.cal-sel-plan { display: flex; padding-top: 8px; border-top: 1px dashed var(--border-light); }

/* карточка рассылки под сеткой */
.cal-md { display: flex; flex-direction: column; gap: 10px; }
.cal-md-head { display: flex; align-items: center; gap: 12px; }
.cal-md-ico { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; flex: none; border-radius: 11px; color: var(--cal-mail); background: var(--cal-mail-bg); }
.cal-md.st-off .cal-md-ico, .cal-md.st-cancelled .cal-md-ico, .cal-md.st-nobody .cal-md-ico { color: var(--text-muted); background: var(--surface-bg); }
.cal-md.st-failed .cal-md-ico { color: var(--cal-hot); background: var(--cal-hot-bg); }
.cal-md-titles { flex: 1; min-width: 0; }
.cal-md-title { font-size: 15px; font-weight: 700; line-height: 1.3; }
.cal-md-sub { font-size: 12.5px; color: var(--text-muted); margin-top: 2px; }
.cal-md-facts { display: flex; flex-wrap: wrap; gap: 8px 26px; }
.cal-md-facts > div { display: flex; flex-direction: column; gap: 2px; min-width: 120px; }
.cal-md-facts span { font-size: 10.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--text-muted); }
.cal-md-facts b { font-size: 13px; font-weight: 600; }
.cal-md-note { padding: 9px 12px; border-radius: 10px; background: var(--surface-bg); border: 1px solid var(--border-light); font-size: 12.5px; line-height: 1.5; color: var(--text-secondary, var(--text-color)); }
.cal-md-note.err { background: var(--cal-hot-bg); border-color: transparent; color: var(--cal-hot); }
.cal-md-sec { font-size: 13px; font-weight: 600; }
.cal-md-runs { display: flex; flex-direction: column; gap: 3px; font-size: 12.5px; }
.cal-md-runs b { font-variant-numeric: tabular-nums; margin-right: 4px; }
.cal-md-occ { display: flex; flex-direction: column; gap: 6px; padding: 10px 12px; border: 1px solid var(--border-light); border-radius: 10px; }
.cal-md-occ-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 13px; }
.cal-md-line { font-size: 12.5px; line-height: 1.65; }
.cal-md-line .am-pill { margin-right: 4px; }
.cal-md-acts { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

/* список получателей */
.cal-rl { border: 1px solid var(--border-color); border-radius: 10px; overflow: hidden; background: var(--card-bg); }
.cal-rl-q { display: block; width: 100%; box-sizing: border-box; padding: 8px 11px; border: none; border-bottom: 1px solid var(--border-light); background: var(--card-bg); color: var(--text-color); font: inherit; font-size: 13px; outline: none; }
.cal-rl-list { max-height: 240px; overflow-y: auto; padding: 4px 0; }
.cal-rl-list > .cal-hint { padding: 6px 11px; }
.cal-rl-row { display: flex; align-items: center; gap: 8px; padding: 4px 11px; font-size: 12.5px; }
.cal-rl-row svg { flex: none; }
.cal-rl-row.st-ok svg { color: var(--cal-ok); }
.cal-rl-row.st-err svg { color: var(--cal-hot); }
.cal-rl-row.st-info svg { color: var(--primary-color); }
.cal-rl-row.st-skip svg, .cal-rl-row.st-skip .cal-rl-name { color: var(--text-muted); }
.cal-rl-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cal-rl-note { flex: none; max-width: 55%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11.5px; color: var(--text-muted); }
.cal-rl-row.st-err .cal-rl-note { color: var(--cal-hot); }

/* сообщение пузырём WhatsApp (цвета — .am-wa из «Бот-рассылок») */
.cal-wa { max-height: 360px; }
.cal-wa-who { align-self: flex-start; font-size: 11.5px; color: #54656f; }
body[data-theme="dark"] .cal-wa-who { color: #8696a0; }
.cal-wa-img { max-width: 260px; max-height: 220px; border-radius: 10px 10px 2px 10px; border: 4px solid #d9fdd3; object-fit: cover; }
body[data-theme="dark"] .cal-wa-img { border-color: #005c4b; }
.cal-wa-text { white-space: normal; max-width: 94%; }
.cal-md .cal-wa { max-width: 640px; max-height: 300px; }
.cal-ph { padding: 0 3px; border-radius: 4px; background: rgba(7, 94, 84, .14); color: #075e54; font-weight: 600; }
body[data-theme="dark"] .cal-ph { background: rgba(233, 237, 239, .14); color: #d1f4cc; }

.cal-side { border: 1px solid var(--border-color); border-radius: 12px; background: var(--card-bg); padding: 12px 14px; display: flex; flex-direction: column; gap: 8px; max-height: calc(100vh - 230px); overflow: hidden; }
.cal-side-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 14px; font-weight: 700; }
.cal-list { overflow-y: auto; display: flex; flex-direction: column; gap: 10px; padding-right: 2px; }
.cal-group-date { font-size: 12px; font-weight: 700; color: var(--text-muted); margin-bottom: 4px; text-transform: none; }
.cal-when { margin-left: 4px; padding: 0 7px; border-radius: 999px; background: var(--surface-bg); font-weight: 600; }
.cal-ev { display: flex; align-items: center; gap: 10px; padding: 7px 8px; border-radius: 9px; cursor: pointer; border: 1px solid transparent; }
.cal-ev:hover { background: var(--hover-bg); }
.cal-ev-ico { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 8px; flex: none; }
.cal-ev.t-client .cal-ev-ico { color: var(--cal-client); background: var(--cal-client-bg); }
.cal-ev.t-staff .cal-ev-ico { color: var(--cal-staff); background: var(--cal-staff-bg); }
.cal-ev.t-company .cal-ev-ico { color: var(--cal-company); background: var(--cal-company-bg); }
.cal-ev.t-holiday .cal-ev-ico { color: var(--cal-holiday); background: var(--cal-holiday-bg); }
.cal-ev.t-mailing .cal-ev-ico { color: var(--cal-mail); background: var(--cal-mail-bg); }
.cal-ev.t-mailing.st-off .cal-ev-ico, .cal-ev.t-mailing.st-cancelled .cal-ev-ico, .cal-ev.t-mailing.st-nobody .cal-ev-ico { color: var(--text-muted); background: var(--surface-bg); }
.cal-ev.t-mailing.st-failed .cal-ev-ico { color: var(--cal-hot); background: var(--cal-hot-bg); }
.cal-ev.on { border-color: var(--cal-mail); background: var(--cal-mail-bg); }
.cal-ev-time { margin-right: 6px; font-variant-numeric: tabular-nums; color: var(--cal-mail); }
.cal-ev-state { flex: none; font-size: 11px; }
.cal-ev.hot { border-color: var(--cal-hot); background: var(--cal-hot-bg); }
.cal-ev.hot .cal-ev-ico { color: var(--cal-hot); background: transparent; }
.cal-ev-main { min-width: 0; flex: 1; }
.cal-ev-title { font-size: 13px; font-weight: 600; color: var(--text-color); }
.cal-ev.hot .cal-ev-title { color: var(--cal-hot); }
.cal-ev-sub { font-size: 12px; color: var(--text-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cal-resp { margin-left: 4px; padding: 0 6px; border-radius: 999px; background: var(--surface-bg); font-size: 11px; }
/* праздник, с которым бот поздравит клиентов (повод включён в «Бот-рассылки → Важные даты и праздники») */
.cal-greet { display: inline-flex; align-items: center; gap: 3px; margin-left: 6px; padding: 0 7px; border-radius: 999px; background: rgba(34, 197, 94, .13); color: #15803d; font-size: 11px; font-weight: 600; vertical-align: 1px; }
.cal-greet svg { flex: none; }
body[data-theme="dark"] .cal-greet { color: #4ade80; }
.cal-greet.off { background: rgba(148, 163, 184, .18); color: var(--text-muted); }
body[data-theme="dark"] .cal-greet.off { color: var(--text-muted); }
.cal-seen { flex: none; padding: 3px 9px; border: 1px solid var(--cal-hot); border-radius: 7px; background: var(--card-bg); color: var(--cal-hot); font: inherit; font-size: 12px; cursor: pointer; }
.cal-seen:hover { background: var(--cal-hot); color: #fff; }

/* окна «Дни рождения сотрудников» / «Даты компании» */
.cal-overlay { position: fixed; inset: 0; z-index: 3000; background: rgba(15, 23, 42, .45); display: flex; align-items: flex-start; justify-content: center; padding: 6vh 16px 16px; }
body[data-theme="dark"] .cal-overlay { background: rgba(0, 0, 0, .6); }
.cal-modal { width: min(640px, 100%); max-height: 86vh; display: flex; flex-direction: column; border-radius: 14px; background: var(--card-bg); color: var(--text-color); box-shadow: var(--shadow-xl); }
.cal-modal-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 14px 16px; border-bottom: 1px solid var(--border-color); font-size: 15px; }
.cal-modal-body { padding: 14px 16px 18px; overflow-y: auto; display: flex; flex-direction: column; gap: 12px; }
.cal-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.cal-table th { text-align: left; padding: 7px 8px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: var(--text-muted); background: var(--surface-bg); border-bottom: 1px solid var(--border-color); }
.cal-table td { padding: 7px 8px; border-bottom: 1px solid var(--border-light); vertical-align: middle; }
.cal-table input[type="date"], .cal-form input { padding: 6px 9px; border: 1px solid var(--border-color); border-radius: 8px; background: var(--card-bg); color: var(--text-color); font: inherit; font-size: 13px; }
.cal-nowrap { white-space: nowrap; }
.cal-form { display: flex; flex-direction: column; gap: 8px; padding: 12px; border: 1px dashed var(--border-color); border-radius: 10px; }
.cal-form-title { font-size: 13px; font-weight: 700; }
.cal-form-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; font-size: 13px; }
.cal-form-row.end { justify-content: flex-end; }
.cal-form-row label { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }

/* окно «Новая рассылка»: слева поля, справа — как увидит клиент и кому уйдёт */
.cal-sched { width: min(1080px, 100%); max-height: 90vh; }
.cal-sched .cal-modal-body { padding: 0; gap: 0; overflow: hidden; flex: 1; min-height: 0; }
.cal-sched-grid { display: grid; grid-template-columns: minmax(0, 1fr) 380px; flex: 1; min-height: 0; overflow: hidden; }
.cal-sched-form { display: flex; flex-direction: column; gap: 14px; padding: 16px 18px 18px; overflow-y: auto; }
.cal-sched-side { display: flex; flex-direction: column; gap: 10px; padding: 14px 16px 16px; overflow-y: auto; border-left: 1px solid var(--border-color); background: var(--surface-bg); }
.cal-side-title { font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--text-muted); }
.cal-fld { display: flex; flex-direction: column; gap: 6px; font-size: 13px; min-width: 0; }
.cal-fld > span { font-size: 12.5px; font-weight: 600; color: var(--text-color); }
.cal-fld > span i { margin-left: 6px; font-style: normal; font-weight: 400; color: var(--text-muted); }
.cal-fld input[type="text"], .cal-fld textarea { width: 100%; box-sizing: border-box; padding: 9px 11px; border: 1px solid var(--border-color); border-radius: 9px; background: var(--card-bg); color: var(--text-color); font: inherit; font-size: 13.5px; }
.cal-fld input[type="text"]:focus, .cal-fld textarea:focus { outline: none; border-color: var(--primary-color); box-shadow: 0 0 0 3px var(--primary-light); }
.cal-fld textarea { min-height: 170px; resize: vertical; line-height: 1.5; }
.cal-fld-row { display: flex; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.cal-fld-row .cal-fld { flex: 1 1 200px; }
.cal-fld-row .cal-fld:nth-child(2) { flex: 0 1 150px; }
.cal-fld-when { flex: 1 1 100%; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-height: 0; margin-top: -4px; }
.cal-fld-when:empty { display: none; }
.cal-aud { display: flex; flex-wrap: wrap; gap: 6px; }
.cal-aud-btn { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; padding: 7px 12px; border: 1px solid var(--border-color); border-radius: 999px; background: var(--card-bg); color: var(--text-color);
    font: inherit; font-size: 12.5px; cursor: pointer; }
.cal-aud-btn i { font-style: normal; color: var(--text-muted); font-variant-numeric: tabular-nums; }
.cal-aud-btn:hover { border-color: var(--primary-color); }
.cal-aud-btn.on { border-color: var(--primary-color); background: var(--primary-light); color: var(--primary-color); font-weight: 600; }
.cal-aud-btn.on i { color: inherit; }
.cal-aud-sum { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; min-height: 22px; }
.cal-vars { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.cal-var { padding: 2px 8px; border: 1px dashed var(--border-color); border-radius: 6px; background: transparent; color: var(--primary-color); font: inherit; font-size: 12px; cursor: pointer; }
.cal-var:hover { background: var(--primary-light); border-color: var(--primary-color); }
.cal-attach { display: inline-flex; align-items: center; gap: 7px; align-self: flex-start; padding: 8px 12px; border: 1px dashed var(--border-color); border-radius: 9px; color: var(--primary-color); font-size: 13px; font-weight: 600; cursor: pointer; }
.cal-attach:hover { background: var(--primary-light); border-color: var(--primary-color); }
.cal-img { display: flex; align-items: center; gap: 10px; }
.cal-img img { max-width: 180px; max-height: 110px; border-radius: 9px; border: 1px solid var(--border-color); object-fit: cover; }
.cal-sched-foot { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 12px 16px; border-top: 1px solid var(--border-color); }
.cal-sched-sum { flex: 1; min-width: 220px; display: flex; align-items: center; gap: 8px; font-size: 13px; }
.cal-sched-sum svg { flex: none; color: var(--primary-color); }

/* свой выпадающий список (ответственный, сохранённый список) */
.cal-dd { position: fixed; z-index: 3200; display: flex; flex-direction: column; max-height: 320px; max-width: min(420px, calc(100vw - 24px)); overflow: hidden;
    border: 1px solid var(--border-color); border-radius: 11px; background: var(--card-bg); color: var(--text-color); box-shadow: var(--shadow-xl); }
.cal-dd-q { margin: 8px 8px 4px; padding: 7px 10px; border: 1px solid var(--border-color); border-radius: 8px; background: var(--card-bg); color: var(--text-color); font: inherit; font-size: 13px; outline: none; }
.cal-dd-q:focus { border-color: var(--primary-color); }
.cal-dd-list { overflow-y: auto; padding: 4px; }
.cal-dd-it { display: flex; align-items: center; justify-content: space-between; gap: 14px; width: 100%; padding: 8px 10px; border: none; border-radius: 7px; background: none; color: var(--text-color);
    font: inherit; font-size: 13px; text-align: left; cursor: pointer; }
.cal-dd-it:hover { background: var(--hover-bg); }
.cal-dd-it span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cal-dd-it i { flex: none; font-style: normal; font-size: 11.5px; color: var(--text-muted); white-space: nowrap; }
.cal-dd-empty { padding: 12px; font-size: 12.5px; line-height: 1.5; color: var(--text-muted); }

/* красный счётчик на пункте меню «Календарь» и на кнопке «Другое» */
.cal-nav-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 5px; margin-left: 6px; border-radius: 999px;
    background: #dc2626; color: #fff; font-size: 11px; font-weight: 700; line-height: 1; }
.cal-nav-badge[hidden] { display: none; }

@media (max-width: 1100px) {
    .cal-body { grid-template-columns: minmax(0, 1fr); }
    .cal-side { max-height: none; }
}
@media (max-width: 900px) {
    .cal-sched-grid { grid-template-columns: minmax(0, 1fr); overflow-y: auto; }
    .cal-sched-form, .cal-sched-side { overflow: visible; }
    .cal-sched-side { border-left: none; border-top: 1px solid var(--border-color); }
}
@media (max-width: 700px) {
    .cal { padding: 12px 10px 18px; }
    .cal-cell { min-height: 64px; }
    .cal-chip { font-size: 10.5px; }
    .cal-mail { font-size: 10px; }
    .cal-mail b { display: none; }
    .cal-actions { margin-left: 0; }
}
