/* Planning tools share the site's typography and palette, with task-focused density. */
[data-planner] h1 { font-size: 40px; max-width: 900px; margin-bottom: 16px; }
.planner-overview h1 { font-size: 56px; max-width: 800px; margin-bottom: 20px; }
.planner-intro { max-width: 68ch; font-size: 16px; color: var(--muted); margin-bottom: 32px; }
.planner-tool-list { margin: 40px 0 28px; border-top: 1px solid var(--line); }
.planner-tool-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 32px; align-items: center; padding: 28px 0; border-bottom: 1px solid var(--line); }
.planner-tool-row h2 { font-size: 32px; margin-bottom: 10px; }
.planner-tool-row p { max-width: 64ch; margin: 0; color: var(--muted); font-size: 15px; }
.planner-tool-row .btn { min-width: 190px; }
[data-planner] .tool-panel { border: 0; background: transparent; border-radius: 0; padding: 0; margin-bottom: 32px; }
[data-planner] .tool-panel > .muted { max-width: 75ch; font-size: 14px; }
.planner-fields { display: flex; flex-wrap: wrap; gap: 20px; margin: 24px 0 16px; align-items: end; }
.planner-fields label { flex: 1 1 160px; min-width: 0; }
.planner-fields label, .planner-add label { font-size: 14px; font-weight: 500; }
.planner-fields input, .planner-fields select, .planner-table input, .planner-add input, .planner-add select { display: block; width: 100%; box-sizing: border-box; min-width: 0; min-height: 44px; padding: 10px 12px; border: 1px solid #8d8394; border-radius: 6px; background: white; color: var(--ink); font: 400 16px/1.4 var(--sans); }
.planner-fields input, .planner-fields select, .planner-add input, .planner-add select { margin-top: 7px; }
.planner-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); gap: 20px; margin: 28px 0; padding: 20px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: 14px; }
.planner-summary strong { display: block; font-size: 20px; font-weight: 600; margin-top: 6px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.planner-over { color: #a12e31; }
.planner-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 32px; margin: 32px 0; }
.planner-card { min-width: 0; border-top: 1px solid var(--line); padding-top: 24px; }
.planner-card h2 { font-family: var(--sans); font-size: 20px; font-weight: 600; margin: 0 0 20px; }
.planner-card .planner-fields { display: grid; grid-template-columns: 1fr; margin-top: 0; gap: 16px; }
.planner-card .planner-summary { margin-bottom: 0; grid-template-columns: 1fr; gap: 16px; }
.planner-card .planner-summary p { margin: 0; }
.planner-table-wrap { overflow-x: auto; }
.planner-table { width: 100%; border-collapse: collapse; font-size: 14px; font-variant-numeric: tabular-nums; }
.planner-table caption { text-align: left; padding: 0 0 12px; font-size: 14px; }
.planner-table th, .planner-table td { text-align: left; padding: 12px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.planner-table thead th { background: var(--lilac); font-weight: 500; }
.planner-table tbody th { background: transparent; font-weight: 500; }
.planner-table input[type=number] { min-width: 90px; max-width: 180px; }
.planner-table input[type=text] { min-width: 160px; }
.planner-table .planner-row-actions { width: 1%; white-space: nowrap; text-align: right; }
.planner-event-time { min-width: 140px; }
.planner-actions { display: flex; gap: 12px; flex-wrap: wrap; margin: 24px 0; }
.planner-add { display: flex; gap: 16px; flex-wrap: wrap; align-items: end; margin: 28px 0; max-width: 760px; }
.planner-add label { flex: 1 1 180px; min-width: 0; }
.planner-add label:has([name=priority]) { flex: 0 1 140px; }
.planner-check-group { max-width: 800px; }
.planner-check-group h2 { font-family: var(--sans); font-size: 20px; font-weight: 600; margin: 32px 0 10px; }
.planner-check-item { display: flex; align-items: start; gap: 14px; min-height: 44px; padding: 16px 0; border-bottom: 1px solid var(--line); cursor: pointer; font-size: 16px; }
.planner-check-item input { width: 22px; height: 22px; flex-shrink: 0; margin: 2px 0 0; accent-color: var(--plum); }
.planner-check-item span { display: block; }
.planner-check-item small { display: block; color: var(--muted); font-size: 14px; margin-top: 4px; }
.planner-check-item input:checked + span { text-decoration: line-through; color: var(--muted); }
.planner-status { min-height: 1.5em; font-size: 14px; color: var(--muted); }
.planner-progress { width: 100%; max-width: 800px; height: 10px; accent-color: var(--plum); }
.planner-privacy { font-size: 14px; max-width: 75ch; }
.planner-timeline-note { font-size: 14px; max-width: 75ch; }
[data-rebuild-timeline] + .planner-timeline-note { margin-top: 24px; }
.planner-remove { background: transparent; border: 0; border-radius: 6px; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; color: var(--plum); font-size: 14px; padding: 10px 12px; min-height: 44px; }
.planner-remove:hover { background: var(--lilac); }
@media screen and (max-width: 740px) {
  [data-planner] h1 { font-size: 36px; }
  .planner-overview h1 { font-size: 44px; }
  .planner-tool-row { grid-template-columns: 1fr; gap: 18px; padding: 26px 0; }
  .planner-tool-row h2 { font-size: 30px; }
  .planner-tool-row .btn { justify-self: start; min-width: 0; }
  .planner-fields { gap: 16px; }
  .planner-fields label { flex-basis: 100%; }
  .planner-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 16px; }
  .planner-table-wrap { overflow: visible; }
  .planner-table, .planner-table tbody { display: block; }
  .planner-table caption { display: block; }
  .planner-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .planner-table tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; row-gap: 12px; padding: 20px 0; border-top: 1px solid var(--line); }
  .planner-table th, .planner-table td { display: block; min-width: 0; border: 0; padding: 0; }
  .planner-table tbody th { grid-column: 1 / -1; font-size: 16px; }
  .planner-table td[data-label]::before { content: attr(data-label); display: block; font-size: 14px; margin-bottom: 7px; color: var(--muted); }
  .planner-table input[type=number], .planner-table input[type=text] { min-width: 0; max-width: none; }
  .planner-event-name { grid-column: 1 / -1; }
  .planner-table .planner-row-actions { grid-column: 2; width: auto; align-self: end; justify-self: end; }
  .planner-event-time { align-self: center; font-size: 14px; }
  .planner-add { gap: 14px; }
  .planner-add label { flex-basis: 100%; }
}
@media print {
  header, footer, nav, .planner-no-print, .planner-actions, .planner-privacy, .planner-status, .planner-add { display: none !important; }
  .planner-table-wrap { overflow: visible; }
  .planner-table input { border: 0; padding: 0; min-height: 0; }
  .planner-table th, .planner-table td { padding: 6px; }
  .planner-table .planner-row-actions { display: none; }
  .planner-fields input, .planner-fields select { border: 0; }
  [data-planner] .tool-panel { break-inside: auto; }
  .planner-table tr, .planner-check-item { break-inside: avoid; }
  body { background: white !important; color: black !important; }
}
