.cal-head { display: flex; align-items: center; gap: 8px; margin-top: 24px; }
.cal-head h2 { margin: 0 auto 0 0; min-width: 9em; }
.cal-head button { font-family: inherit; font-size: 14px; padding: 2px 10px; border: 1px solid currentColor; background: transparent; color: var(--text); border-radius: 3px; cursor: pointer; }
table.cal { width: 100%; border-collapse: collapse; table-layout: fixed; margin-top: 10px; }
table.cal th { font-size: 12px; font-weight: 400; color: var(--muted); padding: 4px 0; }
table.cal td { border: 1px solid var(--grid); vertical-align: top; height: 64px; padding: 3px; font-size: 12px; }
table.cal td.other { opacity: .35; }
table.cal td.today .n { font-weight: 700; text-decoration: underline; }
table.cal .ev { display: block; margin-top: 2px; padding: 1px 3px; border-radius: 3px; font-size: 11px; line-height: 1.25; overflow-wrap: anywhere; }
.ev.due, .legend .due { color: #fff; background: #b3261e; }
.ev.remind, .legend .remind { color: #1a1a1a; background: #f2c14e; }
.legend span { padding: 0 3px; border-radius: 2px; margin-left: 10px; }
.legend { font-size: 13px; }
table.list { width: 100%; border-collapse: collapse; font-size: 15px; }
table.list th, table.list td { text-align: left; vertical-align: top; padding: 6px 8px 6px 0; border-bottom: 1px solid var(--grid); }
table.list td:first-child { white-space: nowrap; }
@media (max-width: 600px) { table.cal td { height: 48px; } table.cal .ev { font-size: 9px; } }
