/* ============================================================
   Crew Assign board — assets/crew-board.css
   Uses app.css design tokens (theme-aware).
   ============================================================ */
.cb-wrap { display:flex; flex-direction:column; gap:14px; }
.cb-loading { padding:40px; text-align:center; color:var(--ink-soft); }

.cb-tb { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.cb-tb-l { display:flex; align-items:center; gap:8px; color:var(--ink-soft); }
.cb-select { padding:7px 10px; border:1px solid var(--bd); border-radius:8px; background:var(--bg); color:var(--ink); font:inherit; font-size:13px; max-width:340px; }
.cb-tb-r { display:flex; align-items:center; gap:12px; }
.cb-stat { font-size:12px; color:var(--ink-soft); } .cb-stat b { color:var(--ink); font-size:15px; }

.cb-nudge { display:flex; align-items:center; gap:8px; background:rgba(217,119,6,.10); border:1px solid var(--warn,#D97706); color:var(--warn,#B45309); padding:9px 13px; border-radius:10px; font-size:13px; }
.cb-nudge .ti { font-size:17px; }

.cb-pool { background:var(--bg2); border:1px solid var(--bd); border-radius:12px; padding:12px 14px; }
.cb-pool-hd { display:flex; align-items:center; gap:8px; font-size:13px; font-weight:700; color:var(--ink); margin-bottom:9px; }
.cb-count { background:var(--bd); color:var(--ink-soft); border-radius:20px; padding:1px 8px; font-size:11px; font-weight:700; }
.cb-selhint { margin-left:auto; font-weight:600; font-size:12px; color:var(--accent); }
.cb-pool-cards { display:flex; flex-wrap:wrap; gap:7px; min-height:34px; }
.cb-empty-pool { color:var(--ink-faint); font-size:13px; padding:6px 2px; }

.cb-card { display:inline-flex; align-items:center; gap:7px; background:var(--bg); border:1px solid var(--bd); border-radius:999px; padding:4px 10px 4px 4px; font:inherit; font-size:12.5px; color:var(--ink); cursor:pointer; }
.cb-poolcard:hover { border-color:var(--ink-faint); }
.cb-poolcard.sel { border-color:var(--accent); background:var(--accent-bg); box-shadow:0 0 0 1px var(--accent) inset; }
.cb-av { display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:50%; background:var(--bd); color:var(--ink-soft); font-size:10px; font-weight:800; }
.cb-av.on { background:var(--accent); color:var(--accent-ink); }
.cb-nm { font-weight:600; white-space:nowrap; }

.cb-tasks { display:flex; flex-direction:column; gap:16px; }
.cb-group-hd { display:flex; align-items:center; gap:8px; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-soft); margin-bottom:8px; }
.cb-group-hd .ti { color:var(--accent); }
.cb-group { }
.cb-task { background:var(--bg2); border:1px solid var(--bd); border-radius:12px; padding:12px 14px; margin-bottom:9px; }
.cb-task-hd { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:9px; }
.cb-task-t { font-weight:700; font-size:14px; color:var(--ink); }
.cb-sub { color:var(--ink-faint); font-size:13px; }
.cb-plan { margin-left:auto; font-size:11.5px; font-weight:700; color:var(--ink-soft); background:var(--bg); border:1px solid var(--bd); border-radius:20px; padding:2px 9px; }
.cb-status { font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.03em; padding:2px 8px; border-radius:20px; }
.cb-st-in_progress { background:var(--accent-bg); color:var(--accent); }
.cb-st-blocked { background:rgba(220,38,38,.12); color:#DC2626; }
.cb-st-complete { background:rgba(22,163,74,.14); color:#16A34A; }
.cb-task-crew { display:flex; flex-wrap:wrap; gap:7px; min-height:30px; margin-bottom:10px; }
.cb-nocrew { color:var(--ink-faint); font-size:12.5px; font-style:italic; padding:5px 2px; }
.cb-active { padding-right:4px; background:var(--bg); }
.cb-hrs { font-variant-numeric:tabular-nums; font-weight:700; color:var(--accent); font-size:12px; }
.cb-x { border:none; background:none; color:var(--ink-faint); font-size:16px; line-height:1; cursor:pointer; padding:0 2px; }
.cb-x:hover { color:#DC2626; }
.cb-edit { border:none; background:none; color:var(--ink-faint); cursor:pointer; padding:0 2px; display:inline-flex; }
.cb-edit:hover { color:var(--accent); }
.cb-task-act { display:flex; gap:8px; }

/* Correct-timing modal */
.cb-modal-bg { position:fixed; inset:0; background:rgba(0,0,0,.45); display:flex; align-items:center; justify-content:center; z-index:9999; }
.cb-modal { background:var(--bg); border:1px solid var(--bd); border-radius:14px; padding:20px; width:min(380px,92vw); box-shadow:var(--shadow-md); }
.cb-modal-hd { font-weight:800; font-size:15px; margin-bottom:12px; color:var(--ink); }
.cb-lb { display:block; font-size:11px; font-weight:700; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.03em; margin:10px 0 4px; }
.cb-modal input { width:100%; padding:8px 10px; border:1px solid var(--bd); border-radius:8px; background:var(--bg2); color:var(--ink); font:inherit; font-size:13px; }
.cb-or { text-align:center; color:var(--ink-faint); font-size:11px; margin:12px 0 2px; }
.cb-modal-p { font-size:12.5px; color:var(--ink-soft); line-height:1.5; margin:0 0 6px; }
.cb-modal-wide { width:min(640px,94vw); max-height:88vh; overflow:auto; }
.cb-modal-hd { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.cb-rwk { width:auto; padding:5px 8px; border:1px solid var(--bd); border-radius:7px; background:var(--bg2); color:var(--ink); font:inherit; font-size:12px; }
.cb-rsum { display:flex; gap:16px; flex-wrap:wrap; font-size:12.5px; color:var(--ink-soft); margin:12px 0; padding:10px 12px; background:var(--bg2); border:1px solid var(--bd); border-radius:9px; }
.cb-rsum b { color:var(--ink); }
.cb-rsum .cb-warn b, .cb-warn { color:var(--warn,#D97706); }
.cb-rsum .cb-ok b, .cb-ok { color:var(--pos,#16A34A); }
.cb-rsub { font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-soft); margin:16px 0 6px; }
.cb-rtable { width:100%; border-collapse:collapse; font-size:12.5px; }
.cb-rtable th { text-align:left; font-size:10px; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-faint); padding:6px 8px; border-bottom:1px solid var(--bd); }
.cb-rtable th.r, .cb-rtable td.r { text-align:right; font-variant-numeric:tabular-nums; }
.cb-rtable td { padding:7px 8px; border-bottom:1px solid var(--bd); color:var(--ink); }
.cb-muted { color:var(--ink-faint); font-weight:400; font-size:11px; }
.cb-pill { font-size:10px; font-weight:800; padding:2px 7px; border-radius:20px; }
.cb-pill.ok { background:rgba(22,163,74,.14); color:var(--pos,#16A34A); }
.cb-pill.warn { background:var(--bd); color:var(--ink-soft); }
.cb-pill.bad { background:rgba(217,119,6,.14); color:var(--warn,#D97706); }
.cb-modal-act { display:flex; justify-content:flex-end; gap:8px; margin-top:16px; }
.empty-state.sm { padding:28px; }

/* ── Crew rollup ("My Crew") ── */
.cr-wrap { display:flex; flex-direction:column; gap:16px; }
.cr-head { display:flex; align-items:flex-end; justify-content:space-between; gap:14px; flex-wrap:wrap; }
.cr-title { font-size:20px; font-weight:800; display:flex; align-items:center; gap:9px; }
.cr-title .ti { color:var(--accent); }
.cr-sub { font-size:13px; color:var(--ink-soft); margin-top:3px; }
.cr-kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; }
.cr-kpi { background:var(--bg2); border:1px solid var(--bd); border-radius:12px; padding:14px 16px; }
.cr-k-top .ti { font-size:16px; color:var(--ink-faint); }
.cr-k-n { font-size:28px; font-weight:800; margin-top:6px; letter-spacing:-.02em; }
.cr-k-n.pos { color:var(--pos,#16A34A); } .cr-k-n.warn { color:var(--warn,#D97706); }
.cr-k-l { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-soft); margin-top:2px; }

.cr-tree { background:var(--bg2); border:1px solid var(--bd); border-radius:12px; overflow:hidden; }
.cr-node { display:flex; align-items:center; gap:10px; padding:9px 12px; border-top:1px solid var(--bd); }
.cr-node:first-child { border-top:none; }
.cr-node.root { background:var(--accent-bg); }
.cr-node:hover { background:var(--bg); }
.cr-av { display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; border-radius:50%; background:var(--bd); color:var(--ink-soft); font-size:11px; font-weight:800; flex:none; }
.cr-node.root .cr-av { background:var(--accent); color:var(--accent-ink); }
.cr-nm { font-weight:700; font-size:13.5px; color:var(--ink); min-width:150px; }
.cr-you { font-size:9px; font-weight:800; text-transform:uppercase; background:var(--accent); color:var(--accent-ink); border-radius:20px; padding:1px 6px; vertical-align:middle; }
.cr-trade { font-weight:500; font-size:11.5px; color:var(--ink-faint); }
.cr-status { flex:1; font-size:12.5px; color:var(--ink-soft); }
.cr-dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--ink-faint); margin-right:5px; }
.cr-dot.on { background:var(--pos,#16A34A); }
.cr-onwork b { color:var(--ink); }
.cr-cc { background:var(--bd); color:var(--ink-soft); border-radius:5px; padding:1px 6px; font-size:11px; font-weight:700; }
.cr-proj { color:var(--ink-faint); }
.cr-hrs { font-variant-numeric:tabular-nums; font-weight:700; color:var(--accent); }
.cr-idle { color:var(--ink-faint); font-style:italic; }
.cr-today { font-variant-numeric:tabular-nums; font-weight:700; color:var(--ink); font-size:13px; min-width:52px; text-align:right; }
.cr-focus { flex:none; }

