/* ============================================================
   PIPELINE — Kanban Board, Pipeline Filters, Jobs Kanban
   ============================================================
   Source: css/styles.css
   - Pipeline filter bar: lines 102-108
   - Filter toggle: lines 104-106
   - Kanban wrapper/col/card: lines 109-138
   - Pipeline total bar: lines 136-138
   - Jobs kanban: lines 729-741
   - Kanban touch drag: lines 1522-1539
   ============================================================ */

/* ---------- Pipeline Filter Bar ---------- */
.pipeline-filter-bar { display: flex; gap: 0.5rem; flex-wrap: wrap; align-items: center; margin-bottom: 1rem; padding: 0.75rem; background: var(--navy-light); border: 1px solid var(--navy-lighter); border-radius: var(--radius-lg); }
.pipeline-filter-bar label { font-size: 0.75rem; margin-bottom: 0; margin-right: 0.25rem; }
.filter-toggle { font-family: 'Montserrat', sans-serif; font-weight: 500; font-size: 0.72rem; padding: 0.3rem 0.7rem; border-radius: var(--radius); border: 1px solid var(--navy-lighter); background: var(--navy); color: var(--gray-300); cursor: pointer; transition: all 0.2s; text-transform: uppercase; letter-spacing: 0.3px; }
.filter-toggle:hover { border-color: var(--gold); color: var(--gold); }
.filter-toggle.active { background: var(--gold); color: var(--navy); border-color: var(--gold); }
.pipeline-cust-filter { margin-left: auto; display: flex; align-items: center; gap: 0.5rem; }
.pipeline-cust-filter select { width: auto; min-width: 160px; font-size: 0.78rem; padding: 0.3rem 0.5rem; }

/* ---------- Kanban Board ---------- */
.kanban-wrapper { display: grid; grid-template-columns: repeat(6, 1fr); gap: 0.75rem; overflow-x: auto; }
.kanban-col { background: var(--navy-light); border: 1px solid var(--navy-lighter); border-radius: var(--radius-lg); padding: 0.75rem; min-height: 200px; display: flex; flex-direction: column; transition: opacity 0.25s ease; }
.kanban-col.hidden-col { display: none; }
.kanban-col-header { font-family: 'Montserrat', sans-serif; font-weight: 600; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.5px; color: var(--gold); padding-bottom: 0.5rem; border-bottom: 1px solid var(--navy-lighter); margin-bottom: 0.5rem; display: flex; justify-content: space-between; align-items: center; }
.kanban-col-header .col-count { background: var(--navy); color: var(--gray-300); font-size: 0.7rem; padding: 0.15rem 0.5rem; border-radius: 10px; }
.kanban-cards { flex: 1; min-height: 60px; display: flex; flex-direction: column; gap: 0.5rem; }
.kanban-cards.drag-over { background: rgba(212, 175, 55, 0.05); border-radius: var(--radius); }
.kanban-card { background: var(--navy); border: 1px solid var(--navy-lighter); border-radius: var(--radius); padding: 0.6rem; cursor: grab; transition: border-color 0.2s, box-shadow 0.2s; position: relative; }
.kanban-card:hover { border-color: var(--gold); box-shadow: 0 0 8px var(--gold-glow); }
.kanban-card.dragging { opacity: 0.4; }
.kanban-card.linked-card { border-left: 3px solid var(--gold); }
.kanban-card.customer-highlight { border-color: var(--gold); box-shadow: 0 0 12px var(--gold-glow); }
.kanban-card.stale-warning { border-color: var(--orange); }
.kanban-card.stale-danger { border-color: var(--red); }
.kanban-card .card-name { font-weight: 500; font-size: 0.85rem; color: var(--champagne); margin-bottom: 0.25rem; padding-right: 1.2rem; }
.kanban-card .card-customer-link { font-size: 0.7rem; color: var(--gold); cursor: pointer; text-decoration: underline; margin-bottom: 0.2rem; display: inline-block; }
.kanban-card .card-customer-link:hover { color: var(--champagne); }
.kanban-card .card-customer-badge { display: inline-block; font-size: 0.6rem; background: rgba(212,175,55,0.15); color: var(--gold); padding: 0.1rem 0.35rem; border-radius: 3px; margin-bottom: 0.2rem; text-transform: uppercase; font-weight: 600; letter-spacing: 0.3px; }
.kanban-card .card-service { font-size: 0.75rem; color: var(--gray-300); }
.kanban-card .card-value { font-size: 0.78rem; color: var(--gold); font-weight: 600; margin-top: 0.3rem; }
.kanban-card .card-notes { font-size: 0.72rem; color: var(--gray-500); margin-top: 0.2rem; font-style: italic; line-height: 1.35; }
.kanban-card .card-age { font-size: 0.65rem; color: var(--gray-500); margin-top: 0.25rem; }
.kanban-card .card-contact-btns { display: flex; gap: 0.3rem; margin-top: 0.35rem; flex-wrap: wrap; }
.kanban-card .card-contact-btns a { font-size: 0.65rem; padding: 0.15rem 0.4rem; border-radius: 4px; background: var(--navy-lighter); color: var(--champagne); text-decoration: none; transition: all 0.15s; }
.kanban-card .card-contact-btns a:hover { background: var(--gold); color: var(--navy); }
.kanban-card .card-delete { position: static; background: none; border: none; color: var(--gray-500); cursor: pointer; font-size: 0.85rem; line-height: 1; padding: 0.1rem 0.3rem; }
.kanban-card .card-delete:hover { color: var(--red); }
.pipeline-total-bar { margin-bottom: 1rem; display: flex; align-items: center; gap: 1rem; }
.pipeline-total-bar .total-label { font-family: 'Montserrat', sans-serif; font-weight: 600; color: var(--gray-300); text-transform: uppercase; font-size: 0.8rem; letter-spacing: 0.5px; }
.pipeline-total-bar .total-value { font-family: 'Cinzel', serif; font-weight: 700; font-size: 1.5rem; color: var(--gold); }

/* ---------- Jobs Kanban ---------- */
.jobs-kanban-wrapper { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0.75rem; }
.jobs-kanban-col { background: var(--navy-light); border: 1px solid var(--navy-lighter); border-radius: var(--radius-lg); padding: 0.75rem; min-height: 300px; display: flex; flex-direction: column; }
.jobs-kanban-col .jk-header { font-family: 'Montserrat', sans-serif; font-weight: 600; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.5px; color: var(--gold); padding-bottom: 0.5rem; border-bottom: 1px solid var(--navy-lighter); margin-bottom: 0.5rem; display: flex; justify-content: space-between; align-items: center; }
.jobs-kanban-col .jk-cards { flex: 1; min-height: 60px; display: flex; flex-direction: column; gap: 0.5rem; }
.jobs-kanban-col .jk-cards.drag-over { background: rgba(212,175,55,0.05); border-radius: var(--radius); }
.jk-card { background: var(--navy); border: 1px solid var(--navy-lighter); border-left: 3px solid var(--gold); border-radius: var(--radius); padding: 0.6rem; cursor: grab; transition: all 0.2s; position: relative; }
.jk-card:hover { border-color: var(--gold); box-shadow: 0 0 8px var(--gold-glow); }
.jk-card.dragging { opacity: 0.4; }
.jk-card .jk-name { font-weight: 500; font-size: 0.82rem; color: var(--champagne); }
.jk-card .jk-customer { font-size: 0.7rem; color: var(--gold); }
.jk-card .jk-value { font-size: 0.72rem; color: var(--gold); font-weight: 600; margin-top: 0.2rem; }
.jk-card .card-delete { position: absolute; top: 0.3rem; right: 0.3rem; background: none; border: none; color: var(--gray-500); cursor: pointer; font-size: 0.8rem; }
.jk-card .card-delete:hover { color: var(--red); }

/* ---------- Kanban Touch Drag (source: lines 1522-1539) ---------- */
.kanban-card.touch-dragging {
  opacity: 0.6;
  box-shadow: 0 8px 24px rgba(0,0,0,0.4), 0 0 12px rgba(212,175,55,0.2);
  transform: scale(1.02);
  z-index: 100;
}
.jk-card.touch-dragging {
  opacity: 0.6;
  box-shadow: 0 8px 24px rgba(0,0,0,0.4), 0 0 12px rgba(212,175,55,0.2);
  transform: scale(1.02);
  z-index: 100;
}
.kanban-cards.touch-drag-over {
  background: rgba(212, 175, 55, 0.08);
  border: 1px dashed var(--gold-dim);
  border-radius: var(--radius);
}
