/* Cronograma (Gantt). Blocos copiados do HTML legado (archive/cronograma-legado/), linhas indicadas. */

/* medidas do Gantt (legado :root). --NW é sobrescrito pelo JS com o tamanho do calendário. */
:root{--TW:706px;--WW:58px;--RH:40px;--MH:46px;--HDR:50px;--NW:105;}

/* tema claro: degradês das barras (legado 31-34) */
body.theme-light .b-c{background:linear-gradient(90deg,#dcf5e7,#16a34a18);}
body.theme-light .b-a{background:linear-gradient(90deg,#dbf1f7,#0891b218);}
body.theme-light .b-p{background:linear-gradient(90deg,#fbe8cf,#b4530918);}
body.theme-light .b-n{background:linear-gradient(90deg,#ede4fb,#6d28d918);}

/* PROJECT SELECTOR (substitui as abas/tags) */
.projbar{display:flex;align-items:center;gap:10px;padding:8px 18px;border-bottom:2px solid var(--border);background:var(--surface);flex-shrink:0;}
.proj-label{font-family:var(--mono);font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;}
.proj-sel-wrap{position:relative;}
.proj-sel{display:flex;align-items:center;gap:9px;min-width:300px;padding:8px 12px;border:1px solid var(--border);background:var(--surface2);color:var(--text);border-radius:7px;cursor:pointer;font-family:var(--sans);font-size:13px;font-weight:500;transition:border-color .15s;}
.proj-sel:hover,.proj-sel.open{border-color:var(--accent);}
.proj-sel .ps-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
.proj-sel .ps-name{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.proj-sel .ps-cnt{font-family:var(--mono);font-size:10.5px;background:var(--border);color:var(--muted);padding:2px 7px;border-radius:8px;}
.proj-sel .ps-caret{font-size:9px;color:var(--muted);}
.proj-dropdown{position:fixed;z-index:400;width:360px;max-height:60vh;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.5);padding:6px;}
.proj-search{width:100%;padding:7px 9px;margin-bottom:6px;border:1px solid var(--border);background:var(--surface2);color:var(--text);border-radius:6px;font-family:var(--sans);font-size:12px;outline:none;}
.proj-search:focus{border-color:var(--accent);}
.proj-item{display:flex;align-items:center;gap:9px;padding:8px 9px;border-radius:6px;cursor:pointer;font-size:12.5px;}
.proj-item:hover{background:var(--surface2);}
.proj-item.sel{background:var(--surface2);}
.proj-item .pi-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
.proj-item .pi-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.proj-item .pi-cnt{font-family:var(--mono);font-size:10px;color:var(--muted);}
.proj-item .pi-act{opacity:0;display:flex;gap:2px;}
.proj-item:hover .pi-act{opacity:1;}
.pi-btn{border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:12px;padding:2px 4px;border-radius:4px;line-height:1;}
.pi-btn:hover{color:var(--text);background:var(--border);}
.proj-dd-sep{height:1px;background:var(--border);margin:6px 2px;}
.proj-new{display:flex;align-items:center;gap:8px;width:100%;padding:8px 9px;border:none;background:transparent;color:var(--accent);cursor:pointer;font-family:var(--sans);font-size:12.5px;font-weight:500;border-radius:6px;text-align:left;}
.proj-new:hover{background:var(--surface2);}
.proj-empty{font-size:11.5px;color:var(--muted);padding:10px 9px;}

/* STATS */
.statsbar{display:flex;align-items:stretch;border-bottom:1px solid var(--border);background:var(--surface);padding:0 18px;overflow-x:auto;flex-shrink:0;height:42px;}
.stat{padding:0 13px;border-right:1px solid var(--border);display:flex;flex-direction:column;justify-content:center;flex-shrink:0;}
.stat:first-child{padding-left:0;}
.sv{font-family:var(--mono);font-size:18px;font-weight:600;line-height:1;}
.sk{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-top:2px;}
.legend{display:flex;align-items:center;gap:11px;margin-left:auto;padding-left:13px;flex-shrink:0;}
.li{display:flex;align-items:center;gap:4px;font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;}
.ld{width:7px;height:7px;border-radius:50%;flex-shrink:0;}

/* HINT BAR */
.filterbar2{display:flex;align-items:center;gap:5px;padding:6px 18px;border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0;overflow-x:auto;height:34px;}
.filt-btn{padding:4px 13px;border-radius:14px;border:1px solid var(--border);background:transparent;color:var(--muted);font-family:var(--mono);font-size:10.5px;cursor:pointer;white-space:nowrap;transition:all .13s;letter-spacing:.02em;}
.filt-btn.on{font-weight:600;border-color:currentColor;}
.filt-btn.f-all{}.filt-btn.f-all.on{background:var(--surface2);color:var(--text);}
.filt-btn.f-c.on{background:rgba(34,199,122,.15);color:var(--green);}
.filt-btn.f-a.on{background:rgba(0,212,255,.15);color:var(--accent);}
.filt-btn.f-p.on{background:rgba(245,200,66,.15);color:var(--yellow);}
.filt-btn.f-n.on{background:rgba(123,97,255,.15);color:var(--accent2);}
.filt-btn.f-x.on{background:rgba(107,117,145,.15);color:var(--muted);}
.filt-sep{width:1px;height:18px;background:var(--border);flex-shrink:0;margin:0 2px;}
.pbtn{padding:4px 13px;border-radius:14px;border:1px solid var(--border);background:transparent;color:var(--muted);font-family:var(--mono);font-size:10.5px;cursor:pointer;white-space:nowrap;transition:all .13s;letter-spacing:.02em;}
.pbtn.on{font-weight:600;border-color:var(--accent2);background:rgba(123,97,255,.15);color:var(--accent2);}
.person-filter-wrap{position:relative;flex-shrink:0;}
.person-dropdown{position:fixed;background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:8px;min-width:190px;max-height:280px;overflow-y:auto;z-index:200;box-shadow:0 8px 24px rgba(0,0,0,.4);}
.person-dropdown-item{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:4px;font-size:12px;font-family:var(--sans);color:var(--text);cursor:pointer;white-space:nowrap;}
.person-dropdown-item:hover{background:rgba(255,255,255,.06);}
.person-dropdown-item input{cursor:pointer;flex-shrink:0;}
.person-dropdown-footer{display:flex;justify-content:space-between;align-items:center;padding-top:6px;margin-top:4px;border-top:1px solid var(--border);}
.person-dropdown-clear{font-family:var(--mono);font-size:10px;color:var(--muted);cursor:pointer;background:none;border:none;padding:2px 4px;}
.person-dropdown-clear:hover{color:var(--text);}
.hintbar{display:flex;align-items:center;gap:12px;padding:3px 18px;border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0;height:24px;overflow-x:auto;}
.hint{font-family:var(--mono);font-size:8.5px;color:var(--muted);display:flex;align-items:center;gap:4px;white-space:nowrap;}
.hk{background:var(--surface2);border:1px solid var(--border);border-radius:3px;padding:1px 4px;font-size:7.5px;}


/* SCROLL & TABLE */
.scroll-wrap{flex:1;min-height:0;overflow:auto;position:relative;}
.gtable{display:table;table-layout:fixed;border-collapse:collapse;min-width:calc(var(--TW) + var(--WW)*var(--NW));}

/* HEADER — two-level: Sprint row + Week row */
/* Header rows are position:sticky divs OUTSIDE the table,
   overlaid on top of the scroll area */
.gantt-headers{
  position:sticky;top:0;z-index:35;
  background:var(--surface);
  flex-shrink:0;
}
.hdr-row{
  display:flex;
  border-bottom:1px solid var(--border);
  overflow:hidden; /* clips to scroll container width — sync via JS */
}
.hdr-row.hdr-wk-row{border-bottom:2px solid var(--border);}
.hdr-corner{
  flex-shrink:0;
  width:var(--TW);
  min-width:var(--TW);
  height:100%;
  position:sticky;left:0;z-index:50;
  background:var(--surface);
  border-right:2px solid var(--border);
  display:flex;align-items:center;
  padding:0 12px;
  font-family:var(--mono);font-size:11px;color:var(--muted);
  text-transform:uppercase;letter-spacing:.05em;
  box-sizing:border-box;
}
.hdr-sp-wrap{flex:1;overflow:hidden;position:relative;height:32px;}
#hdrSpInner{display:flex;position:absolute;left:0;top:0;will-change:transform;}
.hdr-sp-cell{
  flex-shrink:0;
  height:32px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:1px;
  font-family:var(--mono);font-weight:600;
  color:var(--text);
  background:var(--surface2);
  border-right:2px solid var(--border);
  white-space:nowrap;overflow:hidden;
  padding:0 2px;
}
.hdr-sp-cell .sp-num{font-size:12px;line-height:1.1;letter-spacing:.02em;}
.hdr-sp-cell .sp-month{font-size:9px;line-height:1.1;opacity:.65;font-weight:400;text-transform:uppercase;letter-spacing:.04em;}
.hdr-sp-cell.cur-sp{color:var(--accent);background:rgba(0,212,255,.1);}
.hdr-wk-wrap{flex:1;overflow:hidden;position:relative;height:22px;}
#hdrWkInner{display:flex;position:absolute;left:0;top:0;will-change:transform;}
.hdr-wk-cell{
  flex-shrink:0;
  height:22px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:9px;color:var(--muted);
  border-right:1px solid rgba(37,42,56,.5);
  gap:1px;
}
.hdr-wk-cell.sp-start{border-left:2px solid var(--border);}
.hdr-wk-cell.cur-wk{color:var(--accent);background:rgba(0,212,255,.06);}
.hdr-today-mark{position:absolute;top:0;bottom:0;width:0;border-left:2px dashed var(--accent);opacity:.6;pointer-events:none;z-index:5;}
.wk-dates{font-size:8.5px;opacity:.6;line-height:1;}

/* ROWS */
.mrow{display:table-row;}
.mrow .ct,.mrow .cw{background:var(--surface2)!important;border-top:2px solid var(--border);border-bottom:1px solid var(--border);}
.drow{display:table-row;}
.drow.collapsed{display:none;}
.drow:hover .ct,.drow:hover .cw{background:rgba(255,255,255,.016);}

/* TASK CELL */
.ct{display:table-cell;position:sticky;left:0;z-index:20;background:var(--bg);border-right:2px solid var(--border);border-bottom:1px solid rgba(37,42,56,.4);width:var(--TW);max-width:var(--TW);overflow:hidden;vertical-align:middle;padding:0 10px;height:var(--RH);box-sizing:border-box;}
.mrow .ct{height:var(--MH);}
.ct-grid{display:grid;grid-template-columns:34px 1fr 90px 90px 82px;gap:6px;align-items:center;overflow:hidden;width:100%;}
.tnum{font-family:var(--mono);font-size:12px;color:var(--muted);text-align:right;min-width:0;}
.tname{font-size:13.5px;line-height:1.35;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:text;}
.inline-edit-input{
  width:100%;
  background:var(--bg);
  border:1px solid var(--accent);
  border-radius:4px;
  color:var(--text);
  font-family:var(--sans);
  font-size:13.5px;
  padding:2px 6px;
  outline:none;
  box-sizing:border-box;
}
.inline-edit-ms{
  font-family:var(--sans);
  font-size:12px;
  font-weight:600;
  text-transform:none;
  color:var(--text);
}
.tstat{display:flex;align-items:center;gap:4px;font-family:var(--mono);font-size:10.5px;cursor:pointer;justify-content:flex-end;}
.tresp{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right;cursor:text;}
.task-del{
  position:absolute;top:2px;right:2px;
  width:15px;height:15px;border-radius:3px;
  border:1px solid var(--border);background:var(--surface2);color:var(--muted);
  font-size:10px;line-height:1;cursor:pointer;
  display:none;align-items:center;justify-content:center;
  z-index:25;transition:all .12s;
}
.drow:hover .task-del{display:flex;}
.task-del:hover{border-color:var(--red, #ff4d6d);color:#ff4d6d;background:rgba(255,77,109,.12);}
.ct{position:sticky !important;} /* ensure positioning context already set, reaffirm for del btn */
.sdot{width:6px;height:6px;border-radius:50%;flex-shrink:0;}

/* MILESTONE ROW */
.ms-inner{display:flex;align-items:center;gap:6px;overflow:hidden;width:100%;max-width:100%;}
.ms-toggle{width:16px;height:16px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:3px;cursor:pointer;font-size:9px;color:var(--muted);border:1px solid var(--border);background:var(--bg);transition:all .15s;user-select:none;}
.ms-toggle:hover{border-color:var(--accent);color:var(--accent);}
.ms-name-wrap{flex:1;min-width:0;max-width:100%;overflow:hidden;}
.ms-name{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--accent2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:text;}
.ms-actions{display:flex;gap:4px;align-items:center;flex-shrink:0;}
.ms-cnt{font-family:var(--mono);font-size:10.5px;color:var(--muted);background:var(--border);padding:2px 7px;border-radius:8px;}
.add-ms-row{display:table-row;cursor:pointer;}
.add-ms-row:hover .add-ms-cell{background:rgba(0,212,255,.06);color:var(--accent);}
.add-ms-cell{
  display:table-cell;position:sticky;left:0;z-index:20;
  background:var(--bg);
  width:var(--TW);max-width:var(--TW);
  border-right:2px solid var(--border);
  border-top:2px dashed var(--border);
  height:36px;vertical-align:middle;
  padding:0 16px;
  font-family:var(--mono);font-size:11.5px;color:var(--muted);
  transition:all .15s;
}
.ms-add{width:18px;height:18px;border-radius:4px;border:1px solid var(--border);background:var(--bg);color:var(--muted);font-size:11px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;line-height:1;}
.ms-add:hover{border-color:var(--green);color:var(--green);}

/* WEEK CELLS */
.cw{display:table-cell;position:relative;border-right:1px solid rgba(37,42,56,.32);border-bottom:1px solid rgba(37,42,56,.32);width:var(--WW);min-width:var(--WW);height:var(--RH);vertical-align:middle;overflow:visible;cursor:pointer;}
.cw.empty-wk:hover{background:rgba(0,212,255,.1) !important;}
.cw.empty-wk:hover::after{content:'+';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:14px;font-weight:600;pointer-events:none;}
.mrow .cw{height:var(--MH);}
.cw.sp-start{border-left:2px solid var(--border);}
.cw.cur-wk{background:rgba(0,212,255,.03);}

/* TODAY LINE */
.tline{position:absolute;top:0;bottom:0;width:0;border-left:2px dashed var(--accent);opacity:.45;pointer-events:none;z-index:14;}
.tlabel{display:none;}

/* BARS */
.bar{position:absolute;top:50%;transform:translateY(-50%);height:24px;border-radius:4px;display:flex;align-items:center;padding:0 6px;font-family:var(--mono);font-size:10.5px;font-weight:600;white-space:nowrap;overflow:hidden;z-index:10;cursor:grab;transition:box-shadow .1s,filter .1s;}
.bar:hover{box-shadow:0 0 0 2px rgba(255,255,255,.18);z-index:50;filter:brightness(1.12);overflow:visible;}
.bar.dragging{cursor:grabbing;box-shadow:0 4px 16px rgba(0,0,0,.6);z-index:200;opacity:.9;transition:none;}
.bar-lbl{overflow:hidden;text-overflow:ellipsis;pointer-events:none;flex:1;}
.bar-resize{position:absolute;right:0;top:0;bottom:0;width:6px;cursor:ew-resize;display:flex;align-items:center;justify-content:center;opacity:0;z-index:6;}
.bar:hover .bar-resize{opacity:1;}
.bar-resize::before{content:'\2806';font-size:10px;color:rgba(255,255,255,.6);}
.b-c{background:linear-gradient(90deg,#1a4d35,#22c77a18);border:1px solid var(--green);color:var(--green);}
.b-a{background:linear-gradient(90deg,#122040,#00d4ff18);border:1px solid var(--accent);color:var(--accent);}
.b-p{background:linear-gradient(90deg,#2a2010,#f5c84218);border:1px solid var(--yellow);color:var(--yellow);}
.b-n{background:linear-gradient(90deg,#1c1828,#7b61ff18);border:1px solid var(--accent2);color:var(--accent2);}
.b-d{background:rgba(37,42,56,.5);border:1px solid var(--muted);color:var(--muted);opacity:.5;}
.b-x{background:rgba(37,42,56,.25);border:1px dashed var(--muted);color:var(--muted);opacity:.38;}


/* ── PRAZO ORIGINAL (baseline) ────────────────────────────────────────────────
   Guarda o fim planejado no momento em que a tarefa nasceu. Quando alguem
   arrasta/estica a barra, o cronograma muda mas este valor nao — e e essa
   diferenca que revela o atraso. */
.tbase{font-family:var(--mono);font-size:9.5px;color:var(--muted);text-align:right;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tbase:hover{color:var(--text);text-decoration:underline dotted;}
.tbase.slip{color:var(--red);font-weight:600;}
.tbase.due{color:var(--yellow);}
.tbase .slipn{font-size:8.5px;opacity:.85;margin-left:2px;}

/* ── Novo (não existia no legado) ─────────────────────────────────────────── */
/* status 'revisao' */
.b-r{background:linear-gradient(90deg,#2d1a0e,#ff8c4218);border:1px solid var(--orange);color:var(--orange);}
body.theme-light .b-r{background:linear-gradient(90deg,#fde4d3,#c2410c18);}
.filt-btn.f-r.on{background:rgba(255,140,66,.15);color:var(--orange);}
/* o corpo do Gantt não seleciona texto ao arrastar a rolagem */
#ganttView{user-select:none;}
.gantt-vazio{padding:40px;text-align:center;color:var(--muted);font-size:12px;}
/* cabeçalho das colunas da tarefa (legado: .hdr-task-wk-inner, l. 196) */
.hdr-corner.hdr-task-wk-inner{display:grid;grid-template-columns:34px 1fr 90px 90px 82px;gap:6px;font-size:9px;letter-spacing:.06em;}
.tstat span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* ── Edição (3b) ─────────────────────────────────────────────────────────── */
/* paleta de cores, popover de status e modal (legado 88-93, 298-325) */
/* swatch picker dentro do modal */
.sw-row{display:flex;flex-wrap:wrap;gap:8px;}
.sw-opt{width:26px;height:26px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;}
.sw-opt.on{border-color:var(--text);box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--accent);}
body.theme-light .proj-dropdown{box-shadow:0 10px 30px rgba(0,0,0,.15);}

/* POPOVER */
.popover{display:none;position:fixed;z-index:1000;background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:12px;min-width:215px;box-shadow:0 12px 40px rgba(0,0,0,.7);}
.popover.on{display:block;}
.pop-title{font-family:var(--mono);font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin-bottom:9px;}
.pop-task{font-size:13px;font-weight:600;margin-bottom:11px;line-height:1.35;color:var(--text);}
.status-opts{display:flex;flex-direction:column;gap:4px;}
.status-opt{display:flex;align-items:center;gap:9px;padding:8px 11px;border-radius:6px;border:1px solid var(--border);cursor:pointer;transition:all .12s;font-size:12.5px;background:transparent;color:var(--text);width:100%;text-align:left;}
.status-opt:hover,.status-opt.selected{border-color:currentColor;background:rgba(255,255,255,.05);}
.status-opt .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.pop-sep{height:1px;background:var(--border);margin:9px 0;}
.pop-close{width:100%;padding:7px;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--muted);font-family:var(--mono);font-size:10.5px;cursor:pointer;}
.pop-close:hover{color:var(--text);border-color:var(--muted);}

/* ADD TASK MODAL */
.modal-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:2000;align-items:center;justify-content:center;}
.modal-bg.on{display:flex;}
.modal{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px;width:440px;max-width:92vw;box-shadow:0 20px 60px rgba(0,0,0,.7);}
.modal h3{font-size:15px;margin-bottom:15px;font-weight:600;color:var(--text);}
.modal-row{display:flex;gap:10px;}.modal-row .field{flex:1;}
.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;}

.field textarea{width:100%;min-height:90px;padding:9px 11px;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:var(--sans);font-size:13px;resize:vertical;}
.field textarea:focus{outline:none;border-color:var(--accent);}
.field input:disabled,.field select:disabled,.field textarea:disabled{opacity:.55;cursor:not-allowed;}
.field .dica{font-size:10.5px;color:var(--muted);margin-top:4px;}
.modal{max-height:90vh;overflow-y:auto;}
.modal.larga{width:560px;}
.modal p.texto{font-size:13px;line-height:1.5;color:var(--text);margin-bottom:6px;}
.modal-erro{background:rgba(255,84,112,.12);border:1px solid var(--red);color:var(--red);border-radius:6px;padding:8px 10px;font-size:12px;margin-top:10px;}
.modal-btn.perigo{background:var(--red);color:#fff;border-color:transparent;font-weight:600;}

/* aviso flutuante (toast) */
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:5000;display:flex;align-items:center;gap:12px;background:var(--surface2);border:1px solid var(--border);border-left:3px solid var(--green);border-radius:8px;padding:10px 14px;font-size:12.5px;box-shadow:0 10px 30px rgba(0,0,0,.45);max-width:90vw;}
.toast.erro{border-left-color:var(--red);}
.toast button{background:none;border:none;color:var(--accent);font-family:var(--mono);font-size:11.5px;cursor:pointer;font-weight:600;}

/* elementos editáveis */
.editavel{cursor:text;}
.editavel:hover{text-decoration:underline dotted var(--muted);}
.tstat.clicavel{cursor:pointer;}
.tstat:not(.clicavel),.tresp:not(.editavel),.tbase:not(.editavel){cursor:default;}
.tbase:not(.editavel):hover{text-decoration:none;color:inherit;}
.task-acoes{position:absolute;top:50%;right:4px;transform:translateY(-50%);display:none;gap:3px;z-index:25;}
.drow:hover .task-acoes{display:flex;}
.task-acoes button{width:20px;height:20px;border-radius:4px;border:1px solid var(--border);background:var(--surface2);color:var(--muted);font-size:11px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.task-acoes button:hover{color:var(--text);border-color:var(--accent);}
.task-acoes button.del:hover{border-color:var(--red);color:var(--red);background:rgba(255,77,109,.12);}
.ms-del{width:18px;height:18px;border-radius:4px;border:1px solid var(--border);background:var(--bg);color:var(--muted);font-size:10px;cursor:pointer;display:none;align-items:center;justify-content:center;}
.mrow:hover .ms-del{display:flex;}
.ms-del:hover{border-color:var(--red);color:var(--red);}
.bar.so-leitura{cursor:default;}
.bar.status-clicavel{cursor:pointer;}
.bar.movel{cursor:grab;}

/* seletor de responsáveis */
.resp-pop{position:fixed;z-index:1000;background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:8px;width:240px;box-shadow:0 8px 24px rgba(0,0,0,.4);}
.resp-pop .resp-lista{max-height:260px;overflow-y:auto;margin:6px 0;}
.resp-pop .person-dropdown-footer{gap:6px;justify-content:flex-end;}
.resp-pop .modal-btn{padding:5px 12px;font-size:11px;}

/* caixa de seleção nos modais */
.field label.check{display:flex;align-items:center;gap:8px;text-transform:none;letter-spacing:0;font-family:var(--sans);font-size:12.5px;color:var(--text);cursor:pointer;margin:0;}
.field label.check input{width:auto;}
.modal .field.compacta{margin-bottom:6px;}

/* ── Visual limpo (no espírito da Home) ──────────────────────────────────────
   Sobrescreve a grade do legado:
   • bordas "separate": com "collapse" as bordas pertencem à grade da tabela e
     a coluna fixa (sticky) não as cobre — sobravam traços por baixo dela;
   • fundos sempre opacos na coluna da tarefa (o hover do legado era 1,6% de
     branco e deixava ver as divisões das semanas passando por trás);
   • sem linha a cada semana: só uma divisão sutil a cada sprint (2 semanas)
     e linhas horizontais discretas. */
:root{--grade:rgba(255,255,255,.045);--grade-sprint:rgba(255,255,255,.09);--hover-linha:color-mix(in srgb,var(--accent) 5%,var(--bg));}
body.theme-light{--grade:#eef1f6;--grade-sprint:#e0e5ee;--hover-linha:color-mix(in srgb,var(--accent) 6%,var(--bg));}

.gtable{border-collapse:separate;border-spacing:0;}
.ct{border-right:1px solid var(--border);border-bottom:1px solid var(--grade);}
.cw{border-right:none;border-bottom:1px solid var(--grade);}
.cw.sp-start{border-left:1px solid var(--grade-sprint);}
.drow:hover .ct,.drow:hover .cw{background:var(--hover-linha);}
.drow:hover .cw.cur-wk{background:color-mix(in srgb,var(--accent) 9%,var(--bg));}
.mrow .ct,.mrow .cw{border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.add-ms-cell{border-right:1px solid var(--border);border-top:1px dashed var(--border);}

/* cabeçalho no mesmo traço */
.hdr-corner{border-right:1px solid var(--border);}
.hdr-sp-cell{border-right:1px solid var(--grade-sprint);}
.hdr-wk-cell{border-right:none;}
.hdr-wk-cell.sp-start{border-left:1px solid var(--grade-sprint);}
.hdr-row.hdr-wk-row{border-bottom:1px solid var(--border);}
/* botões ✎ ✕ do hover cobrem a data do prazo por inteiro */
.task-acoes{background:var(--hover-linha);padding:2px 0 2px 6px;}
