/* Default font: JetBrains Mono (user decision 2026-10-24); theme.js can switch to sans/serif */
:root { --tblr-font-sans-serif: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }

/* Task list */
.task-item { transition: background-color .15s ease; }
.task-done .task-title { text-decoration: line-through; color: var(--tblr-secondary); }
.task-actions { opacity: .55; }
.task-item:hover .task-actions, .task-actions:focus-within { opacity: 1; }
@media (hover: none) { .task-actions { opacity: 1; } }
.min-w-0 { min-width: 0; }
.text-truncate-2 {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}

/* Board (swim lanes) */
.board-lane { background: var(--tblr-bg-surface-secondary); transition: box-shadow .15s ease, background-color .15s ease; }
.board-lane .lane-cards { min-height: 8rem; }
.board-lane.drag-over { background: var(--tblr-primary-lt); box-shadow: inset 0 0 0 2px var(--tblr-primary); }
.task-card { cursor: grab; background: var(--tblr-bg-surface); }
.task-card:active { cursor: grabbing; }
.task-card.dragging { opacity: .4; }
.task-card .task-title:hover { text-decoration: underline; }
.task-card .dropdown-menu .dropdown-item { cursor: pointer; }

/* Calendar */
.calendar th { width: 14.28%; }
.calendar-day { height: 7.5rem; padding: .35rem .4rem !important; }
.calendar-week .calendar-day { height: 22rem; }
.calendar-outside { background: var(--tblr-bg-surface-secondary); color: var(--tblr-secondary); }
.calendar-weekend { background: color-mix(in srgb, var(--tblr-bg-surface-secondary) 60%, transparent); }
.calendar-today { box-shadow: inset 0 0 0 2px var(--tblr-primary); }
.calendar-daynum { font-weight: 600; color: inherit; text-decoration: none; }
.calendar-add { opacity: 0; transition: opacity .15s; }
.calendar-day:hover .calendar-add { opacity: 1; }
.calendar-chip { font-size: .78rem; line-height: 1.25; padding: .15rem .35rem; border-radius: .3rem; margin-bottom: .2rem; color: inherit; text-decoration: none; }
.calendar-chip:hover { filter: brightness(.95); }
.calendar-chip-external { border-left: 3px solid transparent; cursor: default; }
@media (hover: none) { .calendar-add { opacity: 1; } }

/* Assistant chat */
.chat { max-height: 60vh; overflow-y: auto; display: flex; flex-direction: column; gap: .5rem; }
.chat-item { display: flex; flex-direction: column; max-width: 85%; }
.chat-item.user { align-self: flex-end; align-items: flex-end; }
.chat-item.assistant { align-self: flex-start; }
.chat-bubble { padding: .5rem .8rem; border-radius: 1rem; white-space: pre-wrap; }
.chat-item.user .chat-bubble { border-bottom-right-radius: .25rem; }
.chat-item.assistant .chat-bubble { border-bottom-left-radius: .25rem; }
.htmx-indicator { display: none; }
.htmx-request .htmx-indicator, .htmx-request.htmx-indicator { display: block; }

/* Task kinds */
.shopping-items li { line-height: 1.4; }
.kind-section[hidden] { display: none; }

/* Dashboard tiles / bar rows */
.card-link-pop { transition: transform .12s ease, box-shadow .12s ease; }
.card-link-pop:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,.08); }
.bar-row:hover .progress { outline: 2px solid var(--tblr-primary-lt); }
/* Task list groups */
.task-group .card-header { cursor: default; }
.group-toggle[aria-expanded="false"] .ti { transform: rotate(180deg); }
.filter-bar .badge { cursor: pointer; }
/* Board: assign by drop */
.board-members { background: var(--tblr-bg-surface-secondary); }
.member-drop { padding: .3rem; border-radius: .5rem; border: 2px dashed transparent; transition: all .15s; }
.member-drop.drag-over { border-color: var(--tblr-primary); background: var(--tblr-primary-lt); transform: scale(1.08); }

/* Appearance choices from /styleguide (html[data-fp-*]) */
html[data-fp-width="fluid"] .container-xl { max-width: none; }
html[data-fp-density="compact"] .card-body { padding: .75rem; }
html[data-fp-density="compact"] .list-group-item { padding: .4rem .75rem; }
html[data-fp-density="compact"] .page-header { padding: .5rem 0; }
html[data-fp-density="compact"] .task-card .card-body { padding: .5rem !important; }

/* Vertical sidebar layout */
.navbar-vertical .navbar-brand { padding: 1rem 0; }
@media (min-width: 992px) {
  html[data-fp-width="fluid"] .navbar-vertical ~ .page-wrapper .container-xl { max-width: none; }
}
