/* NEW-82: Lịch nghỉ (views/calendar_admin.js, #/calendar). Tiền tố cal-. Chỉ dùng biến màu của app.css (sáng / tối).
   Bảng dùng UI.table (cuộn trong .table-wrap); form "Thử tính hạn" tự xuống dòng ⇒ không tràn ngang ở 390 px. */
.cal-lead { margin: -6px 0 12px; max-width: 860px; }
.cal-years { margin: 0 0 12px; }
.msg.cal-alert { background: var(--warn-soft); color: var(--warn); margin: 0 0 8px; }
.cal-confirm-all { margin: 0 0 10px; }
.cal-counts { margin: 4px 0 8px; font-size: 13px; }
.cal-acts { white-space: nowrap; text-align: right; }
.cal-acts .btn + .btn { margin-left: 4px; }
.btn.cal-danger { background: var(--err); color: var(--on-err); border-color: var(--err); }
.btn.cal-danger:hover { background: var(--err-strong); border-color: var(--err-strong); }
.cal-how { padding: 12px 16px; margin: 16px 0; }
.cal-how summary { cursor: pointer; }
.cal-how ul { margin: 8px 0 4px; padding-left: 20px; }
.cal-how li { margin: 3px 0; }
.cal-h2 { font-size: 16px; margin: 18px 0 8px; }
.cal-calc { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: flex-end; padding: 12px 14px; max-width: 860px; }
.cal-calc .field { margin: 0; min-width: 0; flex: 1 1 150px; }
.cal-calc .cal-calc-go { flex: 0 0 auto; }
.cal-result { padding: 12px 14px; margin: 10px 0 0; max-width: 860px; }
.cal-due { font-size: 15px; }
.cal-result ul { margin: 6px 0 0; padding-left: 20px; font-size: 13px; }
.cal-check { display: flex; gap: 6px; align-items: baseline; flex-wrap: wrap; margin: 4px 0; }
.cal-impact { margin: 0 0 8px; overflow-wrap: anywhere; }
