.tb-pop-cal:has(.tb-calendar-plan) {
  height:auto; min-height:0; overflow:auto;
  max-height:var(--tb-popover-available-height,calc(100dvh - 80px));
}
.tb-calendar-plan {
  height:auto; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);
}
.tb-calendar-plan .tb-cal-pane {
  grid-template-rows:auto auto auto auto; padding:12px;
}
.tb-calendar-plan .tb-cal-head { display:block; margin-bottom:8px; padding-bottom:8px; }
.tb-calendar-plan .tb-cal-period { display:grid; grid-template-columns:44px minmax(0,1fr) 44px auto; gap:2px; }
.tb-calendar-plan .tb-cal-title { min-width:0; font-size:15px; white-space:normal; }
.tb-calendar-plan .tb-cal-nav { flex:0 0 44px; }
.tb-calendar-plan .tb-cal-today { min-height:44px; }
.tb-calendar-plan .tb-cal-days { grid-template-rows:repeat(6,44px); }
.tb-calendar-plan .tb-cal-day { min-height:44px; }
.tb-calendar-plan .tb-cal-overview { padding:16px; }
.tb-calendar-plan .tb-cal-overview h3 { font-size:18px; margin:0 0 12px; }
.tb-pop-cal[data-layout="compact"] .tb-calendar-plan { grid-template-columns:minmax(0,1fr); }
.tb-pop-cal[data-layout="compact"] .tb-calendar-plan .tb-cal-overview {
  display:flex; border-inline-start:0; border-top:1px solid var(--line);
}
.tb-calendar-plan .tb-cal-plan-record {
  position:relative; display:grid; grid-template-rows:auto auto; align-items:start; gap:4px;
  width:100%; min-height:64px; padding:9px 11px 10px; text-align:start;
  border:1px solid var(--line); border-radius:var(--radius); background:var(--card);
  color:var(--ink); cursor:pointer; overflow:hidden;
  transition:transform 100ms ease-out,border-color 140ms ease-out,background-color 140ms ease-out,box-shadow 140ms ease-out;
}
.tb-calendar-plan .tb-cal-plan-record small { min-height:1em; margin:0; }
.tb-calendar-plan .tb-cal-plan-record span {
  display:-webkit-box; min-height:1.35em; overflow:hidden; overflow-wrap:anywhere;
  white-space:normal; -webkit-box-orient:vertical; -webkit-line-clamp:2;
}
@media (hover:hover) {
  .tb-calendar-plan .tb-cal-plan-record:hover {
    border-color:color-mix(in srgb,var(--accent) 38%,var(--line));
    background:color-mix(in srgb,var(--accent) 4%,var(--card));
    transform:translateY(-1px);
  }
}
.tb-calendar-plan .tb-cal-plan-record:active {
  border-color:var(--accent); background:color-mix(in srgb,var(--accent) 9%,var(--card));
  transform:scale(.985);
}
.tb-calendar-plan .tb-cal-plan-record.is-last-opened {
  border-color:color-mix(in srgb,var(--accent) 48%,var(--line));
  background:color-mix(in srgb,var(--accent) 7%,var(--card));
  box-shadow:inset 3px 0 var(--accent);
}
.tb-calendar-plan .tb-cal-plan-record:focus-visible { outline:2px solid var(--ink); outline-offset:2px; }
.tb-calendar-plan .tb-cal-overview-list { max-height:320px; overflow:auto; overscroll-behavior:contain; }
.tb-calendar-plan .tb-cal-plan-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.tb-calendar-plan .tb-cal-plan-actions button { min-height:40px; }
.tb-calendar-plan .tb-cal-past { font-size:12px; }
.tb-calendar-plan .tb-cal-overview-loading {
  margin:0; padding:12px; border-radius:10px; background:var(--card-2);
  color:var(--muted); font-size:13px; line-height:1.4;
}
.tb-calendar-plan .tb-cal-overview-error { margin:0; }
.tb-calendar-plan .tb-cal-overview-error p { margin:0 0 8px; color:var(--danger); }
@media (max-width:620px) {
  .tb-calendar-plan .tb-cal-plan-actions button { min-height:44px; }
  .tb-calendar-plan .tb-cal-overview { min-width:0; }
}
@media (prefers-reduced-motion:reduce) {
  .tb-calendar-plan .tb-cal-plan-record { transition:none; }
  .tb-calendar-plan .tb-cal-plan-record:hover,.tb-calendar-plan .tb-cal-plan-record:active { transform:none; }
}

.tb-calendar-plan .tb-cal-context { margin:-4px 0 12px; color:var(--muted); font-size:12px; line-height:1.5; }
.tb-calendar-plan .tb-cal-record-group { display:grid; gap:8px; margin-bottom:14px; }
.tb-calendar-plan .tb-cal-record-group:last-child { margin-bottom:0; }
.tb-calendar-plan .tb-cal-record-group h4 { margin:0; color:var(--ink); font-size:13px; font-weight:650; }
.tb-calendar-plan .tb-cal-record-status { color:var(--ink); font-weight:600; white-space:normal; line-height:1.4; }
.tb-calendar-plan .tb-cal-record-status.needs-attention { border-inline-start:3px solid var(--danger); padding-inline-start:6px; }
.tb-calendar-plan .tb-cal-conflict-summary { margin:0 0 12px; padding:10px; border:1px solid var(--danger); border-radius:var(--radius); font-size:13px; line-height:1.5; color:var(--ink); }
.tb-calendar-plan .tb-cal-coverage { margin:10px 0 0; color:var(--muted); font-size:12px; line-height:1.5; }
.tb-calendar-plan .tb-cal-dot.slot { background:var(--green); }
.tb-calendar-plan .tb-cal-plan-record small { white-space:normal; overflow-wrap:anywhere; line-height:1.4; }

.tb-calendar-plan .tb-cal-action-record { display:grid; gap:4px; }
.tb-calendar-plan .tb-cal-slot-action { justify-self:start; min-height:40px; font-size:12px; }
.tb-slot-editor { display:grid; gap:14px; }
.tb-slot-fields { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:14px; }
.tb-slot-fields label { display:grid; align-content:start; gap:6px; font-size:13px; }
.tb-slot-fields label:first-child { grid-column:1 / -1; }
.tb-slot-fields .field { min-width:0; width:100%; font-size:16px; min-height:44px; }
.tb-slot-note { margin:0; color:var(--muted); font-size:13px; line-height:1.5; }
.tb-slot-error { margin:0; color:var(--danger); font-size:14px; line-height:1.5; }
.tb-slot-error:empty { display:none; }
.tb-slot-review { padding:14px; border:1px solid var(--line); border-radius:var(--radius); }
.tb-slot-review p,.tb-slot-review li { font-size:14px; line-height:1.5; }
.tb-slot-review ul { padding-inline-start:20px; }
.tb-slot-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.tb-slot-editor button { min-height:44px; }
.tb-slot-editor [hidden] { display:none !important; }
@media (max-width:620px) { .tb-slot-fields { grid-template-columns:minmax(0,1fr); } }
