/* 预约与待办 */
.todo-bar { height: 8px; border-radius: 999px; background: var(--muted-soft); overflow: hidden; margin-top: 8px; }
.todo-bar__fill { height: 100%; background: var(--ok); border-radius: 999px; transition: width .2s ease; }
.todo-list, .todo-facts { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.todo-item { padding: 9px 12px; }
.todo-item + .todo-item { margin-top: 0; }
.todo-item--high { border-left: 3px solid var(--warn); }
.todo-item.is-done { opacity: .7; }
.todo-item.is-done .todo-item__title { text-decoration: line-through; }
.todo-item__check { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; }
.todo-item__check input { margin-top: 3px; width: 16px; height: 16px; flex: none; accent-color: var(--ok); }
.todo-item__title { font-weight: 600; }
.todo-item__meta { margin: 4px 0 0 26px; }
.todo-item > .small.muted { margin-left: 26px; }
.todo-day { font-family: var(--font-figure); cursor: pointer; }
.todo-day:hover { border-color: var(--transit); color: var(--transit); }
.todo-group + .todo-group { margin-top: 10px; }
.todo-group > summary { cursor: pointer; }
.todo-group > p { margin: 6px 0 8px; }
.todo-fact { padding: 7px 0; border-top: 1px dashed var(--rule); }
.todo-fact--loc { cursor: pointer; }
.todo-fact--loc:hover, .todo-fact.is-hover { background: var(--transit-soft); }
.todo-fact__head { display: flex; gap: 8px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.todo-fact__label { font-weight: 600; font-size: 13px; }
.todo-below { padding: 14px 20px 20px; }
.todo-table-wrap { overflow-x: auto; }
.todo-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.todo-table th { text-align: left; font-weight: 500; color: var(--ink-3); font-size: 12px; padding: 4px 8px; border-bottom: 1px solid var(--rule); }
.todo-table td { padding: 3px 8px; border-bottom: 1px dashed var(--rule); }
@media (max-width: 599px), (max-width: 1024px) and (orientation: portrait) {
  .todo-below { padding: 12px 14px 18px; }
}

/* 难买，先订 */
.todo-item--urgent { border-color: color-mix(in srgb, var(--bad) 45%, var(--rule)); box-shadow: inset 3px 0 0 var(--bad); }
.todo-hard { color: var(--bad); }
.todo-item > .todo-hard { margin: 4px 0 0 26px; }
