/* ============================================================================
   projects.css — tweaks specific to the Projects module ONLY.
   No fonts/colors/global styles here (core.css owns all tokens).
   Everything leans on documented .card/.kpi/.grid/.tag/etc; this file adds the
   kanban board, task cards, project rows and a few sprint accents. All classes
   are namespaced .projects-* and use ONLY palette tokens via var(--…).
   ========================================================================== */

/* keep kpi sparks hugging the bottom */
.projects-kpi{display:flex;flex-direction:column}
.projects-kpi .spark{margin-top:11px}

/* ── BURNDOWN legend ─────────────────────────────────────────────────────── */
.projects-burn{position:relative}
.projects-burn-legend{position:absolute;top:16px;right:18px;display:flex;gap:14px;
  font-family:var(--font-mono);font-size:9px;letter-spacing:1.5px;color:var(--text-faint);z-index:2}
.projects-burn-legend .bl{display:flex;align-items:center;gap:5px}
.projects-burn-legend .bl i{width:14px;height:2px;border-radius:2px;display:inline-block}
.projects-burn-legend .bl.actual i{background:var(--accent1)}
.projects-burn-legend .bl.ideal i{background:var(--accent3)}

/* ── SPRINT VITALS panel ─────────────────────────────────────────────────── */
.projects-vitals{display:flex;flex-direction:column}
.projects-vital-row{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:9px 0;border-bottom:1px solid var(--border)}
.projects-vital-row:last-child{border-bottom:none}
.projects-vital-row .pv-label{font-size:13px;color:var(--text);font-weight:600}
.projects-vital-row .pv-sub{font-size:10px;color:var(--text-faint);margin-top:1px}
.projects-vital-row .pv-val{font-size:14px;font-weight:600;color:var(--accent1);
  letter-spacing:.5px;white-space:nowrap}

/* ── KANBAN / GLOBAL TASK BOARD ──────────────────────────────────────────── */
.projects-boardwrap{padding:0}
.projects-board-head{display:flex;align-items:center;justify-content:space-between;gap:12px;
  flex-wrap:wrap;padding:15px 16px;border-bottom:1px solid var(--border)}
.projects-board-head h3{font-family:var(--font-display);font-size:14px;font-weight:600;
  display:flex;align-items:center;gap:8px}
.projects-board-head .pill i{width:6px;height:6px;border-radius:50%;background:var(--accent1);
  box-shadow:0 0 6px var(--accent1);display:inline-block}

/* swimlane toggle — pressed state inherits .btn-primary from the JS */
.projects-swim-toggle[aria-pressed="true"]{box-shadow:0 0 18px var(--glow)}

/* ── FILTER CHIPS (All / My tasks / per person) ──────────────────────────── */
.projects-filters{display:flex;align-items:center;gap:7px;padding:12px 16px;
  border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:thin}
.projects-filters::-webkit-scrollbar{height:6px}
.projects-chip{display:inline-flex;align-items:center;gap:7px;flex:none;
  padding:5px 11px 5px 6px;border-radius:20px;border:1px solid var(--border);
  background:var(--panel);color:var(--text-muted);transition:.15s var(--ease);white-space:nowrap}
.projects-chip:hover{border-color:var(--border-hi);color:var(--text);background:var(--panel-hi)}
.projects-chip.active{border-color:var(--border-hi);color:var(--text);background:var(--panel-hi);
  box-shadow:inset 0 0 0 1px var(--border-hi)}
.projects-chip.active .projects-chip-lbl{color:var(--accent1)}
.projects-chip-lbl{font-size:12px;font-weight:600;letter-spacing:.1px;padding-left:2px}
.projects-chip:not(:has(.projects-chip-av)){padding-left:11px}
.projects-chip-n{font-family:var(--font-mono);font-size:10px;font-weight:700;color:var(--text-faint);
  background:var(--bg);border:1px solid var(--border);border-radius:9px;min-width:18px;text-align:center;padding:0 5px}
.projects-chip.active .projects-chip-n{color:var(--accent1);border-color:var(--border-hi)}
.projects-chip-av .projects-av{width:22px;height:22px;font-size:9px;border-radius:7px}
.projects-chip-div{flex:none;width:1px;height:22px;background:var(--border);margin:0 3px}

/* host wraps either a single board or a stack of swimlanes */
.projects-board-host{display:flex;flex-direction:column}
.projects-board-empty{padding:34px 18px;text-align:center;color:var(--text-faint);font-size:13px}

.projects-board{display:flex;gap:13px;padding:16px;overflow-x:auto;scroll-snap-type:x proximity;
  scrollbar-width:thin}
.projects-col{flex:0 0 270px;min-width:248px;scroll-snap-align:start;display:flex;flex-direction:column;
  background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:11px;gap:10px}
.projects-col-head{display:flex;align-items:center;gap:8px;padding:2px 2px 9px;
  border-bottom:1px solid var(--border)}
.projects-col-head .pc-dot{width:8px;height:8px;border-radius:50%;background:var(--col-accent,var(--accent1));
  box-shadow:0 0 8px var(--col-accent,var(--accent1));flex:none}
.projects-col-head .pc-title{font-family:var(--font-mono);font-size:11px;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--text);font-weight:600;flex:1}
.projects-col-head .pc-count{font-family:var(--font-mono);font-size:11px;font-weight:700;
  color:var(--text-faint);background:var(--panel);border:1px solid var(--border);border-radius:7px;
  min-width:22px;text-align:center;padding:1px 6px}
.projects-col-body{display:flex;flex-direction:column;gap:10px;min-height:8px}

/* task card */
.projects-card{background:linear-gradient(180deg,var(--panel-hi),var(--panel));
  border:1px solid var(--border);border-radius:10px;padding:11px 12px;cursor:pointer;
  position:relative;transition:transform .16s var(--ease),border-color .16s var(--ease),box-shadow .16s var(--ease)}
.projects-card:hover{transform:translateY(-2px);border-color:var(--border-hi);
  box-shadow:0 10px 26px rgba(0,0,0,.4)}
.projects-card:focus-visible{outline:2px solid var(--accent1);outline-offset:2px}
.projects-card-title{font-size:13px;font-weight:600;line-height:1.35;color:var(--text)}
.projects-card.is-done .projects-card-title{color:var(--text-muted)}
.projects-card.is-done{opacity:.82}
.projects-card.is-blocked{border-color:var(--danger);
  box-shadow:inset 0 0 0 1px var(--danger)}
.projects-card-flag{font-family:var(--font-mono);font-size:8px;letter-spacing:1.5px;font-weight:700;
  color:var(--danger);margin-bottom:6px}

/* tags row: status tag + project pill */
.projects-card-tags{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px}
.projects-proj{font-family:var(--font-mono);font-size:9px;letter-spacing:.6px;color:var(--text-faint);
  background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:2px 7px;
  max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.projects-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;
  margin-top:11px;padding-top:9px;border-top:1px solid var(--border)}
.projects-card-foot .projects-av{width:24px;height:24px;font-size:10px}
.projects-due{font-family:var(--font-mono);font-size:10px;letter-spacing:.5px;color:var(--text-faint)}
.projects-due.done{color:var(--success)}

/* move controls (click-to-advance ‹ ›) */
.projects-card-move{display:flex;gap:4px;flex:none}
.projects-mv{width:24px;height:24px;border-radius:7px;border:1px solid var(--border);
  background:var(--panel);color:var(--text-muted);font-size:15px;line-height:1;font-weight:700;
  display:grid;place-items:center;transition:.14s var(--ease)}
.projects-mv:hover:not(:disabled){border-color:var(--accent1);color:var(--accent1);background:var(--panel-hi)}
.projects-mv:disabled{opacity:.32;cursor:default}

/* priority dot */
.projects-pr{width:9px;height:9px;border-radius:50%;flex:none;box-shadow:0 0 7px currentColor}
.projects-pr.high{background:var(--danger);color:var(--danger)}
.projects-pr.med{background:var(--warn);color:var(--warn)}
.projects-pr.low{background:var(--text-faint);color:var(--text-faint);box-shadow:none}

/* add-card ghost button */
.projects-add{font-family:var(--font-mono);font-size:10px;letter-spacing:1px;color:var(--text-faint);
  background:transparent;border:1px dashed var(--border);border-radius:8px;padding:8px;
  text-align:center;transition:.15s var(--ease)}
.projects-add:hover:not(:disabled){color:var(--accent1);border-color:var(--border-hi);background:var(--panel)}
.projects-add:disabled{opacity:.4;cursor:default}

/* ── SWIMLANES (per-person rows) ─────────────────────────────────────────── */
.projects-lane{border-bottom:1px solid var(--border)}
.projects-lane:last-child{border-bottom:none}
.projects-lane-head{display:flex;align-items:center;gap:10px;padding:11px 16px 0}
.projects-lane-head .projects-av{width:26px;height:26px;font-size:10px}
.projects-lane-name{font-size:13px;font-weight:600;color:var(--text)}
.projects-lane-role{font-size:11px;color:var(--text-faint)}
.projects-lane-n{margin-left:auto;font-family:var(--font-mono);font-size:9px;letter-spacing:1.5px;
  color:var(--text-faint)}
.projects-board-lane{padding-top:12px}
.projects-board-lane .projects-col{flex-basis:230px;min-width:210px;padding:9px}
.projects-col-compact .projects-col-body{min-height:0}

/* ── NEW-TASK COMPOSER ───────────────────────────────────────────────────── */
.projects-composer{margin:14px 16px 2px;padding:13px;border:1px solid var(--border-hi);
  border-radius:12px;background:var(--bg2);display:flex;flex-direction:column;gap:11px;
  animation:projComposerIn .22s var(--ease)}
@keyframes projComposerIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.projects-composer-row{display:flex;gap:10px}
.projects-composer-meta{flex-wrap:wrap}
.projects-input,.projects-select{background:var(--panel);border:1px solid var(--border);
  border-radius:8px;padding:9px 11px;font-size:13px;color:var(--text);outline:none;
  font-family:var(--font-body);transition:border-color .15s var(--ease)}
.projects-input{flex:1;width:100%}
.projects-input:focus,.projects-select:focus{border-color:var(--border-hi)}
.projects-input::placeholder{color:var(--text-faint)}
.projects-field{display:flex;flex-direction:column;gap:4px;flex:1;min-width:140px}
.projects-field>span{font-family:var(--font-mono);font-size:9px;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--text-faint)}
.projects-input-sm{padding:7px 10px;font-size:12px}
.projects-select{appearance:none;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--text-faint) 50%),linear-gradient(135deg,var(--text-faint) 50%,transparent 50%);
  background-position:calc(100% - 16px) 55%,calc(100% - 11px) 55%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:30px}
.projects-composer-actions{gap:8px}

/* ── PROJECTS LIST ───────────────────────────────────────────────────────── */
.projects-plist{display:flex;flex-direction:column;gap:4px}
.projects-prow{display:flex;align-items:center;gap:14px;padding:12px 2px;
  border-bottom:1px solid var(--border)}
.projects-prow:last-child{border-bottom:none}
.projects-prow-main{flex:1;min-width:0}
.projects-prow .pr-name{font-size:13px;font-weight:600;color:var(--text);display:flex;
  align-items:center;flex-wrap:wrap}
.projects-prow .pr-pct{font-size:12px;font-weight:600;color:var(--accent1);white-space:nowrap}
.projects-prow .pr-client{font-size:11px;margin-top:2px}
.projects-stack{flex:none}
.projects-stack .projects-av{width:28px;height:28px;font-size:11px;border:2px solid var(--panel);
  margin-left:-9px;border-radius:50%}
.projects-stack .projects-av:first-child{margin-left:0}

/* ── MY TASKS (clickable checks) ─────────────────────────────────────────── */
.projects-check{cursor:pointer;transition:background .14s var(--ease)}
.projects-check:hover{background:var(--panel)}
.projects-check .tag{flex:none}

/* ── RESPONSIVE ──────────────────────────────────────────────────────────── */
@media (max-width:820px){
  .projects-col{flex-basis:230px;min-width:212px}
  .projects-board-lane .projects-col{flex-basis:210px;min-width:200px}
}
@media (max-width:560px){
  .projects-board{padding:12px;gap:11px}
  .projects-col{flex-basis:80%;min-width:80%}
  .projects-board-lane .projects-col{flex-basis:82%;min-width:82%}
  .projects-vital-row .pv-sub{display:none}
  .projects-composer-meta .projects-field{min-width:46%}
  .projects-lane-role{display:none}
}
