/* My calendar card + follow-up modal (shared/calendar.js). Uses theme.css tokens. */
.cal-body{ padding:4px 20px 12px; }
.cal-day{ padding:10px 0 4px; }
.cal-day + .cal-day{ border-top:1px solid var(--line-subtle); margin-top:6px; }
.cal-day-h{ display:flex; justify-content:space-between; align-items:baseline; font-size:var(--t-sm); font-weight:600; color:var(--ink); margin-bottom:4px; }
.cal-day-h span{ font-weight:400; color:var(--ink-3); font-size:var(--t-xs); }
.cal-ev{ display:flex; align-items:flex-start; gap:12px; padding:8px 8px; margin:0 -8px; border-radius:var(--r-sm); text-decoration:none; color:inherit; }
.cal-ev:hover{ background:var(--surface-hover); }
.cal-time{ flex:0 0 64px; font-size:var(--t-sm); color:var(--ink-2); font-variant-numeric:tabular-nums; padding-top:1px; }
.cal-what{ flex:1; min-width:0; display:flex; flex-direction:column; }
.cal-title{ font-size:var(--t-md); font-weight:500; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cal-loc{ font-size:var(--t-xs); color:var(--ink-3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cal-none{ font-size:var(--t-sm); color:var(--ink-3); padding:6px 0 8px; }
.cal-empty{ padding:12px 0 8px; }
.cal-empty-t{ font-size:var(--t-md); font-weight:600; color:var(--ink); }
.cal-empty-d{ font-size:var(--t-sm); color:var(--ink-2); margin:4px 0 14px; line-height:1.5; max-width:46ch; }
.cal-foot{ display:flex; justify-content:space-between; gap:12px; padding:10px 20px 14px; border-top:1px solid var(--line-subtle); font-size:var(--t-xs); color:var(--ink-3); }
.cal-foot span{ min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cal-link{ background:none; border:0; padding:0; font:inherit; color:var(--brand); cursor:pointer; text-decoration:underline; text-underline-offset:2px; white-space:nowrap; }
.cal-spin{ width:14px; height:14px; border:2px solid var(--line-strong); border-top-color:var(--brand); border-radius:50%; animation:calspin .7s linear infinite; display:inline-block; vertical-align:-2px; }
@keyframes calspin{ to{ transform:rotate(360deg); } }
.cal-sheet{ max-width:480px; }
.cal-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.cal-sub{ font-size:var(--t-sm); color:var(--ink-2); margin-top:2px; }
.cal-x{ width:32px; height:32px; border:0; border-radius:var(--r-sm); background:none; color:var(--ink-3); font-size:20px; cursor:pointer; flex:0 0 auto; }
.cal-x:hover{ background:var(--surface-hover); color:var(--ink); }
.cal-grid{ display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr); gap:12px; }
.cal-sheet textarea{ min-height:72px; resize:vertical; }
.cal-opt{ font-weight:400; color:var(--ink-3); }
.cal-check{ display:flex; align-items:flex-start; gap:8px; font-size:var(--t-sm); color:var(--ink-2); cursor:pointer; }
.cal-check input{ width:16px; height:16px; margin-top:2px; accent-color:var(--brand); }
.cal-sheet [hidden]{ display:none !important; }
@media (max-width:560px){ .cal-grid{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); } .cal-grid .field:first-child{ grid-column:1 / -1; } }
