/* =====================================================================
 *  TASKS RANKPANDA — estilos do Plano de Acção
 *  Assenta nos tokens do dashboard.css (--ink, --accent, --paper-*, …).
 *
 *  TUDO aqui está debaixo de `.plano-scope`, e é de propósito. O plano
 *  traz 38 nomes de classe que já existem no dashboard — entre eles
 *  `.cal-grid`, `.cal-dow` e `.cal-nav`, que são o calendário dos filtros
 *  de datas, e ainda `.modal`, `.toast`, `.status`, `.done`, `.big`,
 *  `.count`, `.on`. Solto, este ficheiro repintava metade do dashboard.
 *  O prefixo resolve os 38 de uma vez, sem lhes tocar no nome.
 *
 *  Ficou de fora o CSS das vistas Board, Calendário, Gantt e Cliente: o
 *  design tem os componentes, mas a página do Tasks só mostra a Timeline
 *  (ver plano-app.jsx — o `view` nunca é lido e não há selector de vista).
 * ===================================================================== */

/* ---- Barra de acções ------------------------------------------------ */
.plano-scope .plano-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:26px}
.plano-scope .plano-bar .spacer{flex:0 0 12px}
.plano-scope .plano-actions{display:flex;gap:10px;margin-left:auto;flex-shrink:0}
.plano-scope .plano-search{display:flex;align-items:center;gap:8px;border:1.5px solid var(--ink);background:#fff;padding:0 14px;height:42px;min-width:300px;flex:1 1 380px;max-width:560px}
.plano-scope .plano-search input{border:none;outline:none;background:none;font-family:var(--sans);font-size:var(--t-b2);color:var(--ink);width:100%}
.plano-scope .plano-search input::placeholder{color:var(--muted-2)}
.plano-scope .plano-search .mag{font-family:var(--mono);color:var(--muted-2);font-size:var(--t-b2)}

.plano-scope .plano-btn{appearance:none;font-family:var(--sans);font-weight:600;font-size:var(--t-m1);letter-spacing:.2px;border:1.5px solid var(--ink);background:#fff;color:var(--ink);padding:0 16px;height:42px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:.12s;white-space:nowrap}
.plano-scope .plano-btn:hover{background:var(--paper-2)}
.plano-scope .plano-btn.primary{background:var(--accent);border-color:var(--accent-ink);color:#0a0a0a}
.plano-scope .plano-btn.primary:hover{background:#9bd83e}
.plano-scope .plano-btn.ai{background:#0a0a0a;border-color:#0a0a0a;color:#f3efe4}
.plano-scope .plano-btn.ai:hover{background:#1a1a1a}
.plano-scope .plano-btn.ai .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 rgba(134,194,50,.6);animation:pulse 2.4s infinite}
.plano-scope .plano-btn.ai .badge-n{font-family:var(--mono);font-size:var(--t-m2);font-weight:700;background:var(--warn);color:#fff;padding:1px 6px;border-radius:999px;margin-left:2px}

/* ---- Filtros -------------------------------------------------------- */
.plano-scope .plano-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--paper-3)}
.plano-scope .plano-filters .flabel{font-family:var(--mono);font-size:var(--t-m2);letter-spacing:1.8px;text-transform:uppercase;color:var(--muted-2);font-weight:700;margin-right:4px}
.plano-scope .fchip{appearance:none;font-family:var(--sans);font-weight:600;font-size:var(--t-m1);border:1px solid var(--paper-3);background:#fff;color:var(--muted);padding:7px 13px;cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:.12s;border-radius:999px}
.plano-scope .fchip:hover{border-color:var(--muted-2);color:var(--ink)}
.plano-scope .fchip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.plano-scope .fchip .swatch{width:9px;height:9px;border-radius:50%}

/* ---- Distintivos ---------------------------------------------------- */
.plano-scope .badge-side,
.plano-scope .badge-cat,
.plano-scope .badge-origin,
.plano-scope .badge-prio{font-family:var(--mono);font-size:var(--t-m2);font-weight:700;letter-spacing:.8px;text-transform:uppercase;padding:3px 7px;display:inline-flex;align-items:center;gap:4px;border-radius:2px;line-height:1.2}
.plano-scope .badge-side[data-side="rankpanda"]{background:var(--accent);color:#0a0a0a}
.plano-scope .badge-side[data-side="cliente"]{background:var(--info-soft);color:var(--info)}
.plano-scope .badge-side .fav{width:12px;height:12px;border-radius:2px;display:block;background:#fff;object-fit:contain;flex-shrink:0}
.plano-scope .badge-cat{background:var(--paper-2);color:var(--muted);border:1px solid var(--paper-3)}
.plano-scope .badge-origin{background:#fff;border:1px solid var(--paper-3);color:var(--muted);text-decoration:none;cursor:pointer;transition:.12s}
.plano-scope .badge-origin:hover{border-color:var(--ink);color:var(--ink)}
.plano-scope .badge-origin .gl{font-size:var(--t-m2)}
.plano-scope .badge-origin[data-origin="reuniao"] .gl{color:var(--accent-ink)}
.plano-scope .badge-origin[data-origin="clickup"] .gl{color:#7b68ee}
.plano-scope .badge-prio[data-prio="alta"]{background:var(--warn-soft);color:var(--warn)}
.plano-scope .badge-prio[data-prio="media"]{background:#fef3c7;color:var(--warn-amber)}
.plano-scope .badge-prio[data-prio="baixa"]{background:var(--paper-2);color:var(--muted)}

/* ---- Estado vazio --------------------------------------------------- */
.plano-scope .bcol-empty{font-family:var(--mono);font-size:var(--t-m2);color:var(--muted-2);text-align:center;padding:24px 8px;letter-spacing:.3px}

/* ---- Ícones --------------------------------------------------------- */
.plano-scope .icn{display:block;flex-shrink:0}
.plano-scope .badge-origin .gl .icn{display:block}
.plano-scope .fchip .icn{display:block}
.plano-scope .segmented button .fav{width:14px;height:14px;border-radius:2px;background:#fff;object-fit:contain;flex-shrink:0;padding:1px}
.plano-scope .prio-ic{display:inline-flex;flex-shrink:0}
.plano-scope .prio-ic .icn{display:block}

/* ---- Aviso de duplicados ocultos ------------------------------------ */
.plano-scope .dup-banner{display:flex;align-items:center;gap:12px;background:var(--warn-soft);border:1.5px solid var(--warn);padding:12px 18px;margin-bottom:22px;font-family:var(--sans);font-size:var(--t-b2);color:var(--warn)}
.plano-scope .dup-banner b{font-weight:700}
.plano-scope .dup-banner .undo{margin-left:auto;appearance:none;background:none;border:1.5px solid var(--warn);color:var(--warn);font-family:var(--sans);font-weight:600;font-size:var(--t-m1);padding:6px 12px;cursor:pointer}
.plano-scope .dup-banner .undo:hover{background:var(--warn);color:#fff}

/* =====================================================================
 *  TIMELINE — pendentes do cliente + histórico por mês
 * ===================================================================== */
.plano-scope .tline{display:flex;flex-direction:column}

/* Bloco do cliente, no topo */
.plano-scope .tl-client{border:1.5px solid var(--info);background:#fff;box-shadow:5px 5px 0 var(--info-soft);margin-bottom:32px}
.plano-scope .tl-client-h{display:flex;align-items:center;gap:14px;padding:16px 22px;border-bottom:1.5px solid var(--info);background:var(--info-soft)}
.plano-scope .tl-client-ic{width:38px;height:38px;border:1.5px solid var(--info);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--info);background:#fff;flex-shrink:0}
.plano-scope .tl-client-tt{display:flex;flex-direction:column;gap:2px}
.plano-scope .tl-client-title{font-family:var(--sans);font-weight:800;font-size:var(--t-b1);letter-spacing:-.3px;color:var(--ink)}
.plano-scope .tl-client-sub{font-family:var(--sans);font-size:var(--t-m1);color:var(--info);font-weight:600}
.plano-scope .tl-client-count{margin-left:auto;font-family:var(--sans);font-weight:800;font-size:var(--t-h1);color:var(--info);letter-spacing:-1px}
.plano-scope .tl-client-list{display:flex;flex-direction:column}
.plano-scope .tl-client-item{display:grid;grid-template-columns:14px 1fr 44px 90px;align-items:stretch;gap:0 13px;padding:13px 22px;border-bottom:1px dashed var(--paper-3);cursor:pointer;transition:.1s}
.plano-scope .tl-client-item:last-child{border-bottom:none}
.plano-scope .tl-client-item:hover{background:var(--info-soft)}
.plano-scope .tl-ci-bullet{width:12px;height:12px;border-radius:50%;border:2px solid var(--info);flex-shrink:0;align-self:center}
.plano-scope .tl-ci-body{display:flex;flex-direction:column;gap:3px;min-width:0;align-self:center}
.plano-scope .tl-ci-title{font-family:var(--sans);font-weight:700;font-size:var(--t-b2);color:var(--ink);letter-spacing:-.1px;line-height:1.35}
.plano-scope .tl-ci-desc{font-family:var(--sans);font-size:var(--t-m1);color:var(--muted);line-height:1.4}
.plano-scope .tl-client-item .tl-col-date{color:var(--info);font-weight:700}
.plano-scope .tl-client-item .tl-col-date.over{color:var(--warn)}

/* Cabeçalho do histórico */
.plano-scope .tl-histhead{display:flex;align-items:center;gap:13px;margin-bottom:20px}
.plano-scope .tl-hh-line{width:36px;height:3px;background:var(--accent);flex-shrink:0}
.plano-scope .tl-hh-label{font-family:var(--mono);font-size:var(--t-m2);letter-spacing:2px;text-transform:uppercase;color:var(--muted);font-weight:700;white-space:nowrap}

/* Histórico agrupado por mês */
.plano-scope .tl-hist{position:relative}
.plano-scope .tl-grp{display:grid;grid-template-columns:122px 1fr}
.plano-scope .tl-when{position:relative;padding:18px 18px 20px 0;text-align:right;border-right:2px solid var(--paper-3)}
.plano-scope .tl-node-big{position:absolute;top:24px;right:-8px;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--accent-ink);box-shadow:0 0 0 3px var(--paper);z-index:1}
.plano-scope .tl-grp:first-child .tl-node-big{background:var(--accent)}
.plano-scope .tl-when-d{font-family:var(--sans);font-weight:800;font-size:var(--t-h1);line-height:1;letter-spacing:-.5px;color:var(--ink);text-transform:uppercase}
.plano-scope .tl-when-y{font-family:var(--mono);font-size:var(--t-m1);color:var(--muted);font-weight:600;margin-top:6px}
.plano-scope .tl-grp-body{padding:16px 0 24px 26px}
.plano-scope .tl-grp-h{display:flex;align-items:center;gap:9px;margin:0 -8px 12px;padding:6px 8px;border-radius:6px;flex-wrap:wrap;cursor:pointer;transition:.12s}
.plano-scope .tl-grp-h:hover{background:var(--paper-2)}
.plano-scope .tl-grp-chev{font-family:var(--mono);font-size:var(--t-m1);color:var(--muted-2);width:12px;flex-shrink:0}
.plano-scope .tl-grp.current .tl-grp-h{background:var(--accent-soft)}
.plano-scope .tl-grp.current .tl-grp-h:hover{background:var(--accent-soft)}
.plano-scope .tl-grp.current .tl-node-big{background:var(--accent);border-color:var(--accent-ink);box-shadow:0 0 0 4px var(--accent-soft)}
.plano-scope .tl-grp.current .tl-when-d{color:var(--accent-ink)}
.plano-scope .tl-grp.current .tl-items{border-color:var(--accent-ink);box-shadow:4px 4px 0 var(--accent-soft)}
.plano-scope .tl-grp.future .tl-when-d,
.plano-scope .tl-grp.future .tl-grp-t{color:var(--muted)}
.plano-scope .tl-grp.future .tl-node-big{border-color:var(--muted-2)}
.plano-scope .tl-current-tag{font-family:var(--mono);font-size:var(--t-m2);letter-spacing:1px;text-transform:uppercase;background:var(--accent);color:#0a0a0a;padding:3px 9px;border-radius:999px;font-weight:700;white-space:nowrap}
.plano-scope .tl-future-tag{font-family:var(--mono);font-size:var(--t-m2);letter-spacing:1px;text-transform:uppercase;background:#fff;color:var(--muted);border:1px solid var(--paper-3);padding:3px 9px;border-radius:999px;font-weight:700;white-space:nowrap}
.plano-scope .tl-grp-t{font-family:var(--sans);font-weight:800;font-size:var(--t-b2);letter-spacing:-.3px;color:var(--ink);text-transform:capitalize}
.plano-scope .tl-grp-n{font-family:var(--mono);font-size:var(--t-m2);font-weight:700;color:var(--muted);background:#fff;border:1px solid var(--paper-3);padding:2px 8px;border-radius:999px}
.plano-scope .tl-grp-sum{display:flex;align-items:center;gap:6px 14px;margin-left:auto;flex-wrap:wrap;justify-content:flex-end}
.plano-scope .tl-sumchip{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:var(--t-m2);font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.3px}
.plano-scope .tl-sumchip b{color:var(--ink);font-weight:700}
.plano-scope .tl-sumchip .d{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.plano-scope .tl-items{display:flex;flex-direction:column;border:1.5px solid var(--ink);background:#fff}
.plano-scope .tl-item{display:grid;grid-template-columns:22px 104px 1fr 46px 66px;align-items:stretch;gap:0 12px;padding:10px 14px;border-bottom:1px dashed var(--paper-3);cursor:pointer;transition:.1s}
.plano-scope .tl-item:last-child{border-bottom:none}
.plano-scope .tl-item:hover{background:var(--paper-2)}
.plano-scope .tl-fav-cell{display:flex;align-items:center;justify-content:center}
.plano-scope .tl-item .tl-stchip{align-self:center}
.plano-scope .tl-col{display:flex;align-items:center;justify-content:center}
.plano-scope .tl-col-prio{border-left:1px dashed var(--paper-3)}
.plano-scope .tl-col-date{border-left:1px dashed var(--paper-3);font-family:var(--mono);font-size:var(--t-m2);font-weight:600;color:var(--muted);white-space:nowrap;letter-spacing:.2px}
.plano-scope .tl-item-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;align-self:center}
.plano-scope .tl-item-title{font-family:var(--sans);font-weight:600;font-size:var(--t-b2);color:var(--ink);line-height:1.4;text-wrap:pretty;letter-spacing:-.1px}
.plano-scope .tl-item-desc{font-family:var(--sans);font-weight:400;font-size:var(--t-m1);color:var(--muted);line-height:1.45;text-wrap:pretty}
.plano-scope .tl-cl-fav{width:14px;height:14px;border-radius:3px;background:#fff;object-fit:contain;vertical-align:-2px;margin:0 2px;border:1px solid #cfd6ee;padding:1px}
.plano-scope .tl-fav{width:15px;height:15px;border-radius:3px;background:#fff;object-fit:contain;flex-shrink:0;padding:1px;border:1px solid var(--paper-3)}
.plano-scope .tl-stchip{font-family:var(--mono);font-size:var(--t-m2);font-weight:700;letter-spacing:.6px;text-transform:uppercase;padding:4px 8px;border-radius:3px;flex-shrink:0;min-width:86px;text-align:center;white-space:nowrap}
.plano-scope .tl-stchip[data-status="done"]{background:var(--accent-soft);color:var(--accent-ink)}
.plano-scope .tl-stchip[data-status="progress"]{background:#fef3c7;color:var(--warn-amber)}
.plano-scope .tl-stchip[data-status="onhold"]{background:#e6e8eb;color:#4b4f57}
.plano-scope .tl-stchip[data-status="pending"]{background:var(--info-soft);color:var(--info)}
.plano-scope .tl-stchip[data-status="planned"]{background:var(--paper-2);color:var(--muted)}
.plano-scope .tl-cmt{display:inline-flex;align-items:center;gap:3px;vertical-align:middle;font-family:var(--mono);font-size:var(--t-m2);font-weight:700;color:var(--muted);background:var(--paper-2);border:1px solid var(--paper-3);padding:1px 7px 1px 5px;border-radius:999px;margin-left:8px;line-height:1.5;white-space:nowrap}
.plano-scope .tl-cmt .icn{display:block}
.plano-scope .tl-cmt.today{color:#fff;background:var(--warn);border-color:var(--warn)}
.plano-scope .tl-ci-title .tl-cmt{margin-left:7px}

/* Ligação ao ClickUp: o link quando a tarefa lá está, o aviso quando não subiu. */
.plano-scope .tl-cu{display:inline-flex;align-items:center;gap:4px;vertical-align:middle;
  font-family:var(--mono);font-size:var(--t-m2);font-weight:700;letter-spacing:.5px;text-transform:uppercase;
  color:#5b4bbf;background:#efecfd;border:1px solid #d7d0f7;padding:2px 7px;border-radius:999px;
  margin-left:8px;text-decoration:none;line-height:1.5;white-space:nowrap;transition:.12s;cursor:pointer}
.plano-scope .tl-cu:hover{border-color:#7b68ee;color:#4a3aa8;background:#fff}
.plano-scope .tl-cu.falhou{color:var(--warn);background:var(--warn-soft);border-color:var(--warn)}
.plano-scope .tl-cu.falhou:hover{background:var(--warn);color:#fff}
.plano-scope .tl-cu .icn{display:block}
/* Tempo cronometrado no ClickUp. */
.plano-scope .tl-tempo{display:inline-flex;align-items:center;gap:4px;vertical-align:middle;
  font-family:var(--mono);font-size:var(--t-m2);font-weight:700;color:var(--muted);
  background:var(--paper-2);border:1px solid var(--paper-3);padding:1px 7px 1px 5px;
  border-radius:999px;margin-left:8px;line-height:1.5;white-space:nowrap}
.plano-scope .tl-tempo .icn{display:block}

/* Anos colapsáveis */
.plano-scope .tl-year{margin-bottom:8px}
.plano-scope .tl-year-h{display:flex;align-items:center;gap:12px;width:100%;appearance:none;border:1.5px solid var(--ink);background:var(--ink);color:#f3efe4;padding:11px 18px;cursor:pointer;text-align:left;transition:.12s}
.plano-scope .tl-year-h:hover{background:#1a1a1a}
.plano-scope .tl-year.closed .tl-year-h{background:#fff;color:var(--ink)}
.plano-scope .tl-year.closed .tl-year-h:hover{background:var(--paper-2)}
.plano-scope .tl-year-chev{font-family:var(--mono);font-size:var(--t-b2);width:14px;flex-shrink:0;color:var(--accent)}
.plano-scope .tl-year.closed .tl-year-chev{color:var(--muted-2)}
.plano-scope .tl-year-n{font-family:var(--sans);font-weight:800;font-size:var(--t-b1);letter-spacing:-.4px}
.plano-scope .tl-year-meta{font-family:var(--mono);font-size:var(--t-m2);font-weight:600;color:#a39c8d;letter-spacing:.3px}
.plano-scope .tl-year.closed .tl-year-meta{color:var(--muted)}
.plano-scope .tl-year-collapsed{margin-left:auto;font-family:var(--mono);font-size:var(--t-m2);letter-spacing:1.2px;text-transform:uppercase;color:var(--muted-2);border:1px solid var(--paper-3);padding:3px 9px;border-radius:999px;font-weight:700}
.plano-scope .tl-year-body{border-left:1.5px solid var(--paper-3);margin-left:0;padding-top:6px}

/* Anexos do Drive nas linhas */
.plano-scope .tl-files{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.plano-scope .tl-file{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:var(--t-m2);font-weight:600;color:var(--muted);background:var(--paper-2);border:1px solid var(--paper-3);padding:3px 8px;border-radius:4px;text-decoration:none;transition:.1s;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plano-scope .tl-file img{width:13px;height:13px;flex-shrink:0}
.plano-scope .tl-file:hover{border-color:var(--info);color:var(--info);background:#fff}

/* =====================================================================
 *  MODAL (criar / editar)
 * ===================================================================== */
.plano-scope .modal-back{position:fixed;inset:0;background:transparent;display:flex;align-items:flex-start;justify-content:center;padding:48px 20px;z-index:100;overflow-y:auto}
.plano-scope .modal-back::before{content:"";position:fixed;inset:0;background:rgba(10,10,10,.55);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);pointer-events:none}
.plano-scope .modal{background:var(--paper);border:1.5px solid var(--ink);width:100%;max-width:var(--maxw);box-shadow:10px 10px 0 rgba(10,10,10,.18);margin:auto;position:relative;z-index:1}
.plano-scope .modal-h{display:flex;align-items:center;gap:12px;padding:20px 24px;border-bottom:1.5px solid var(--ink);background:#fff}
.plano-scope .modal-h .mh-eyebrow{font-family:var(--mono);font-size:var(--t-m2);letter-spacing:2.5px;text-transform:uppercase;color:var(--muted);font-weight:700}
.plano-scope .modal-h h3{font-family:var(--sans);font-weight:800;font-size:var(--t-h1);letter-spacing:-.4px;margin:2px 0 0;color:var(--ink)}
.plano-scope .modal-h .x{margin-left:auto;appearance:none;width:34px;height:34px;border:1.5px solid var(--ink);background:#fff;font-family:var(--mono);font-size:var(--t-b1);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.12s;align-self:flex-start}
.plano-scope .modal-h .x:hover{background:var(--warn);color:#fff;border-color:var(--warn)}
.plano-scope .modal-body{padding:22px 24px;display:flex;flex-direction:column;gap:18px}
.plano-scope .modal-body.two-col{display:grid;grid-template-columns:1.25fr 1fr;gap:20px 36px;align-items:start;padding:26px 30px}
.plano-scope .mb-col{display:flex;flex-direction:column;gap:18px;min-width:0}
.plano-scope .mb-full{grid-column:1 / -1}

/* Comentários */
.plano-scope .cmt-list{display:flex;flex-direction:column;gap:11px;margin-bottom:14px;max-height:260px;overflow-y:auto}
.plano-scope .cmt-empty{font-family:var(--sans);font-size:var(--t-b2);color:var(--muted-2);padding:4px 0}
.plano-scope .cmt{display:flex;gap:11px;align-items:flex-start}
.plano-scope .cmt-fav{width:26px;height:26px;border-radius:50%;flex-shrink:0;background:#fff;border:1.5px solid var(--paper-3);object-fit:contain;padding:3px}
.plano-scope .cmt-body{flex:1;min-width:0;background:#fff;border:1.5px solid var(--paper-3);border-radius:8px;padding:9px 13px;border-left-width:3px}
.plano-scope .cmt[data-side="rankpanda"] .cmt-body{border-left-color:var(--accent-ink)}
.plano-scope .cmt[data-side="cliente"] .cmt-body{border-left-color:var(--info)}
.plano-scope .cmt[data-side="rankpanda"] .cmt-fav{border-color:var(--accent)}
.plano-scope .cmt[data-side="cliente"] .cmt-fav{border-color:var(--info)}
.plano-scope .cmt-head{display:flex;align-items:baseline;gap:8px;margin-bottom:3px}
.plano-scope .cmt-who{font-family:var(--sans);font-weight:700;font-size:var(--t-m1);color:var(--ink)}
.plano-scope .cmt-time{font-family:var(--mono);font-size:var(--t-m2);color:var(--muted-2)}
.plano-scope .cmt-text{font-family:var(--sans);font-size:var(--t-b2);color:var(--ink);line-height:1.45;white-space:pre-wrap;word-break:break-word}
.plano-scope .cmt-composer{display:flex;align-items:stretch;gap:8px;flex-wrap:wrap}
.plano-scope .cmt-author{display:flex;gap:6px;flex-shrink:0}
.plano-scope .cmt-auth{appearance:none;display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--paper-3);background:#fff;color:var(--muted);font-family:var(--sans);font-weight:600;font-size:var(--t-m1);padding:0 11px;height:40px;cursor:pointer;border-radius:6px;transition:.12s}
.plano-scope .cmt-auth img{width:16px;height:16px;border-radius:3px;background:#fff}
.plano-scope .cmt-auth:hover{border-color:var(--muted-2);color:var(--ink)}
.plano-scope .cmt-auth.on{border-color:var(--ink);background:var(--ink);color:#fff}
.plano-scope .cmt-auth.on img{padding:1px}
.plano-scope .cmt-input{flex:1;min-width:180px;border:1.5px solid var(--ink);background:#fff;padding:0 12px;height:40px;font-family:var(--sans);font-size:var(--t-b2);color:var(--ink);outline:none}
.plano-scope .cmt-input:focus{box-shadow:inset 0 0 0 2px var(--accent)}
.plano-scope .cmt-send{appearance:none;border:1.5px solid var(--accent-ink);background:var(--accent);color:#0a0a0a;font-family:var(--sans);font-weight:700;font-size:var(--t-b2);padding:0 18px;height:40px;cursor:pointer;flex-shrink:0;transition:.12s}
.plano-scope .cmt-send:hover{background:#9bd83e}
/* Quem está a comentar. Substitui o selector de lado do protótipo: com contas
   a sério, o autor não se escolhe — mostra-se. */
.plano-scope .cmt-eu{display:inline-flex;align-items:center;gap:7px;flex-shrink:0;height:40px;padding:0 12px;
  border:1.5px solid var(--paper-3);background:var(--paper-2);border-radius:6px;
  font-family:var(--sans);font-weight:600;font-size:var(--t-m1);color:var(--muted);white-space:nowrap}
.plano-scope .cmt-eu img{width:16px;height:16px;border-radius:3px;background:#fff}

/* Campos desligados: quem não pode editar continua a ler a ficha toda. */
.plano-scope .fld input:disabled,
.plano-scope .fld textarea:disabled{background:var(--paper-2);color:var(--muted);cursor:not-allowed}
.plano-scope .segmented button:disabled,
.plano-scope .cat-chip:disabled,
.plano-scope .att-add:disabled,
.plano-scope .att-x:disabled{cursor:not-allowed;opacity:.55}
.plano-scope .segmented button:disabled:hover,
.plano-scope .cat-chip:disabled:hover{background:#fff;color:var(--muted);border-color:var(--paper-3)}
.plano-scope .segmented button.on:disabled{opacity:1}
.plano-scope .origin-hint.av{color:var(--info);background:var(--info-soft);border:1px solid var(--info);
  padding:8px 11px;font-family:var(--sans);font-size:var(--t-m1);line-height:1.45}

/* Campos */
.plano-scope .fld{display:flex;flex-direction:column;gap:7px}
.plano-scope .fld > label{font-family:var(--mono);font-size:var(--t-m2);letter-spacing:1.8px;text-transform:uppercase;color:var(--muted);font-weight:700}
.plano-scope .fld input[type=text],
.plano-scope .fld textarea,
.plano-scope .fld input[type=date],
.plano-scope .fld input[type=url],
.plano-scope .fld select{font-family:var(--sans);font-size:var(--t-b2);color:var(--ink);border:1.5px solid var(--ink);background:#fff;padding:10px 12px;outline:none;width:100%}
.plano-scope .fld textarea{resize:vertical;min-height:74px;line-height:1.5}
.plano-scope .fld input:focus,
.plano-scope .fld textarea:focus,
.plano-scope .fld select:focus{box-shadow:inset 0 0 0 2px var(--accent)}
.plano-scope .fld .opt{color:var(--muted-2);font-weight:500;text-transform:none;letter-spacing:0}
.plano-scope .fld-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}

.plano-scope .segmented{display:flex;border:1.5px solid var(--ink);background:#fff;overflow:hidden}
.plano-scope .segmented button{flex:1;appearance:none;border:none;border-right:1px solid var(--paper-3);background:#fff;font-family:var(--sans);font-weight:600;font-size:var(--t-m1);color:var(--muted);padding:10px 6px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:.1s}
.plano-scope .segmented button:last-child{border-right:none}
.plano-scope .segmented button .dot{width:9px;height:9px;border-radius:50%}
.plano-scope .segmented button:hover{background:var(--paper-2)}
.plano-scope .segmented button.on{background:var(--ink);color:#fff}
.plano-scope .segmented.status button[data-v="done"].on{background:var(--accent-ink)}
.plano-scope .segmented.status button[data-v="progress"].on{background:var(--warn-amber)}
.plano-scope .segmented.status button[data-v="onhold"].on{background:#6e7280}
.plano-scope .segmented.status button[data-v="pending"].on{background:var(--info)}
.plano-scope .segmented.status button.on .dot{box-shadow:0 0 0 2px #fff, 0 0 0 3px rgba(10,10,10,.22)}
.plano-scope .segmented.prio button{gap:7px}
.plano-scope .segmented.prio button .prio-ic{color:inherit}
.plano-scope .segmented.prio button[data-v="alta"].on{background:var(--warn);border-color:var(--warn)}
.plano-scope .segmented.prio button[data-v="media"].on{background:var(--warn-amber);border-color:var(--warn-amber)}
.plano-scope .segmented.prio button[data-v="baixa"].on{background:var(--muted);border-color:var(--muted)}
.plano-scope .segmented.prio button.on .prio-ic{color:#fff !important}

.plano-scope .cat-chips{display:flex;flex-wrap:wrap;gap:7px}
.plano-scope .cat-chip{appearance:none;font-family:var(--sans);font-weight:600;font-size:var(--t-m1);border:1.5px solid var(--paper-3);background:#fff;color:var(--muted);padding:8px 13px;cursor:pointer;transition:.12s;border-radius:999px}
.plano-scope .cat-chip:hover{border-color:var(--muted-2);color:var(--ink)}
.plano-scope .cat-chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}

.plano-scope .modal-foot{display:flex;align-items:center;gap:10px;padding:18px 24px;border-top:1.5px solid var(--ink);background:#fff}
.plano-scope .modal-foot .del-link{appearance:none;background:none;border:none;font-family:var(--sans);font-weight:600;font-size:var(--t-m1);color:var(--warn);cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:8px 4px}
.plano-scope .modal-foot .del-link:hover{text-decoration:underline}
.plano-scope .modal-foot .grow{flex:1}
.plano-scope .modal-foot .plano-btn.sync{height:36px;font-size:var(--t-m1);padding:0 13px;color:#5b4bbf;border-color:#d7d0f7;background:#efecfd}
.plano-scope .modal-foot .plano-btn.sync:hover{border-color:#7b68ee;background:#fff}
.plano-scope .modal-foot .plano-btn.sync:disabled{opacity:.6;cursor:default}
.plano-scope .origin-hint{font-family:var(--mono);font-size:var(--t-m2);color:var(--muted-2);line-height:1.5;margin-top:2px}

/* Editor de texto da descrição */
.plano-scope .rte{border:1.5px solid var(--ink);background:#fff}
.plano-scope .rte-tb{display:flex;align-items:center;gap:4px;padding:6px 8px;border-bottom:1.5px solid var(--ink);background:var(--paper-2);flex-wrap:wrap}
.plano-scope .rte-tb button{appearance:none;min-width:30px;height:28px;padding:0 9px;border:1px solid var(--paper-3);background:#fff;color:var(--ink);font-family:var(--sans);font-size:var(--t-b2);font-weight:600;cursor:pointer;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;transition:.1s;white-space:nowrap}
.plano-scope .rte-tb button:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.plano-scope .rte-tb .rte-clear{color:var(--warn)}
.plano-scope .rte-tb .rte-clear:hover{background:var(--warn);border-color:var(--warn);color:#fff}
.plano-scope .rte-sep{width:1px;height:20px;background:var(--paper-3);margin:0 4px}
.plano-scope .rte-area{min-height:96px;max-height:240px;overflow-y:auto;padding:11px 13px;font-family:var(--sans);font-size:var(--t-b2);line-height:1.55;color:var(--ink);outline:none}
.plano-scope .rte-area:focus{box-shadow:inset 0 0 0 2px var(--accent)}
.plano-scope .rte-area:empty:before{content:attr(data-ph);color:var(--muted-2)}
.plano-scope .rte-area ul{margin:6px 0;padding-left:22px}
.plano-scope .rte-area a{color:var(--info);text-decoration:underline}

/* Anexos */
.plano-scope .att-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:9px}
.plano-scope .att-chip{display:inline-flex;align-items:center;gap:7px;border:1.5px solid var(--paper-3);background:#fff;padding:6px 9px;border-radius:6px;font-family:var(--sans);font-size:var(--t-m1);font-weight:600;color:var(--ink);max-width:100%}
.plano-scope .att-chip img{width:15px;height:15px;flex-shrink:0}
.plano-scope .att-chip a{color:var(--ink);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
.plano-scope .att-chip a:hover{text-decoration:underline;color:var(--info)}
.plano-scope .att-x{appearance:none;border:none;background:none;color:var(--muted-2);font-family:var(--mono);font-size:var(--t-m1);cursor:pointer;padding:0 2px;line-height:1}
.plano-scope .att-x:hover{color:var(--warn)}
.plano-scope .att-add{appearance:none;display:inline-flex;align-items:center;gap:8px;border:1.5px dashed var(--muted-2);background:var(--paper-2);color:var(--ink);font-family:var(--sans);font-weight:600;font-size:var(--t-b2);padding:9px 14px;cursor:pointer;transition:.12s}
.plano-scope .att-add:hover{border-color:var(--ink);background:#fff}
.plano-scope .att-add img{width:16px;height:16px}

/* Selector de ficheiros do Drive */
.plano-scope .drive-back{position:fixed;inset:0;background:transparent;display:flex;align-items:flex-start;justify-content:center;padding:60px 20px;z-index:120;overflow-y:auto}
.plano-scope .drive-back::before{content:"";position:fixed;inset:0;background:rgba(10,10,10,.5);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);pointer-events:none}
.plano-scope .drive-picker{background:#fff;border:1.5px solid var(--ink);width:100%;max-width:520px;box-shadow:10px 10px 0 rgba(10,10,10,.18);margin:auto;position:relative;z-index:1}
.plano-scope .drive-h{display:flex;align-items:center;gap:13px;padding:18px 22px;border-bottom:1.5px solid var(--ink)}
.plano-scope .drive-logo{width:30px;height:30px;flex-shrink:0}
.plano-scope .drive-t{font-family:var(--sans);font-weight:800;font-size:var(--t-b1);color:var(--ink);letter-spacing:-.3px}
.plano-scope .drive-s{font-family:var(--sans);font-size:var(--t-m1);color:var(--muted);margin-top:2px}
.plano-scope .drive-h .x{margin-left:auto;appearance:none;width:32px;height:32px;border:1.5px solid var(--ink);background:#fff;font-family:var(--mono);font-size:var(--t-b2);cursor:pointer}
.plano-scope .drive-h .x:hover{background:var(--warn);color:#fff;border-color:var(--warn)}
.plano-scope .drive-list{display:flex;flex-direction:column;max-height:50vh;overflow-y:auto}
.plano-scope .drive-file{display:flex;align-items:center;gap:12px;padding:13px 22px;border:none;border-bottom:1px solid var(--paper-3);background:#fff;cursor:pointer;text-align:left;width:100%;transition:.1s}
.plano-scope .drive-file:last-child{border-bottom:none}
.plano-scope .drive-file:hover{background:var(--accent-soft)}
.plano-scope .drive-file img{width:18px;height:18px;flex-shrink:0}
.plano-scope .df-name{flex:1;min-width:0;font-family:var(--sans);font-weight:600;font-size:var(--t-b2);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plano-scope .df-type{font-family:var(--mono);font-size:var(--t-m2);font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);background:var(--paper-2);padding:2px 7px;border-radius:3px}
.plano-scope .df-add{font-family:var(--sans);font-weight:700;font-size:var(--t-m1);color:var(--accent-ink);flex-shrink:0}

/* =====================================================================
 *  PAINEL DE DUPLICADOS
 * ===================================================================== */
.plano-scope .dedup-back{position:fixed;inset:0;background:transparent;display:flex;align-items:flex-start;justify-content:center;padding:40px 20px;z-index:100;overflow-y:auto}
.plano-scope .dedup-back::before{content:"";position:fixed;inset:0;background:rgba(10,10,10,.55);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);pointer-events:none}
.plano-scope .dedup{background:var(--paper);border:1.5px solid var(--ink);width:100%;max-width:720px;box-shadow:10px 10px 0 rgba(10,10,10,.18);margin:auto;position:relative;z-index:1}
.plano-scope .dedup-h{padding:22px 26px;border-bottom:1.5px solid var(--ink);background:#0a0a0a;color:#f3efe4;display:flex;align-items:center;gap:14px}
.plano-scope .dedup-h .ai-mark{width:38px;height:38px;border:1.5px solid var(--accent);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-weight:700;color:var(--accent);font-size:var(--t-b2);flex-shrink:0}
.plano-scope .dedup-h h3{font-family:var(--sans);font-weight:800;font-size:var(--t-b1);margin:0;letter-spacing:-.3px}
.plano-scope .dedup-h .sub{font-family:var(--mono);font-size:var(--t-m2);color:#a39c8d;letter-spacing:.4px;margin-top:3px}
.plano-scope .dedup-h .x{margin-left:auto;appearance:none;width:34px;height:34px;border:1.5px solid #2a2a2a;background:transparent;color:#f3efe4;font-family:var(--mono);font-size:var(--t-b1);cursor:pointer;display:flex;align-items:center;justify-content:center}
.plano-scope .dedup-h .x:hover{background:#1a1a1a}
.plano-scope .dedup-body{padding:24px 26px;display:flex;flex-direction:column;gap:18px;max-height:62vh;overflow-y:auto}

.plano-scope .dedup-proc{display:flex;flex-direction:column;align-items:center;gap:16px;padding:40px 20px;text-align:center}
.plano-scope .dedup-proc .scanner{width:100%;max-width:380px;height:8px;background:var(--paper-3);overflow:hidden;border:1px solid var(--ink)}
.plano-scope .dedup-proc .scanner i{display:block;height:100%;background:var(--accent);width:30%;animation:plano-scan 1.1s ease-in-out infinite}
@keyframes plano-scan{0%{margin-left:-30%}100%{margin-left:100%}}
.plano-scope .dedup-proc .pmsg{font-family:var(--mono);font-size:var(--t-m1);color:var(--muted);letter-spacing:.3px}
.plano-scope .dedup-proc .pmsg b{color:var(--ink)}
.plano-scope .dedup-proc .plog{font-family:var(--mono);font-size:var(--t-m2);color:var(--muted-2);line-height:1.7;text-align:left;width:100%;max-width:420px}
.plano-scope .dedup-proc .plog .done-ln{color:var(--accent-ink)}

.plano-scope .dedup-summary{font-family:var(--sans);font-size:var(--t-b2);color:var(--ink);line-height:1.55;background:var(--accent-soft);border:1px solid var(--accent-ink);padding:13px 16px}
.plano-scope .dedup-summary b{font-weight:700}
.plano-scope .dgroup{border:1.5px solid var(--ink);background:#fff}
.plano-scope .dgroup-h{display:flex;align-items:center;gap:10px;padding:11px 15px;border-bottom:1px solid var(--paper-3);background:var(--paper-2)}
.plano-scope .dgroup-h .conf{font-family:var(--mono);font-size:var(--t-m2);font-weight:700;letter-spacing:.5px;text-transform:uppercase;padding:3px 8px;border-radius:999px}
.plano-scope .dgroup-h .conf.hi{background:var(--warn-soft);color:var(--warn)}
.plano-scope .dgroup-h .conf.mid{background:#fef3c7;color:var(--warn-amber)}
.plano-scope .dgroup-h .reason{font-family:var(--sans);font-size:var(--t-m1);color:var(--muted);font-weight:500}
.plano-scope .dgroup-items{padding:6px 15px}
.plano-scope .ditem{display:flex;align-items:flex-start;gap:11px;padding:11px 0;border-bottom:1px dashed var(--paper-3)}
.plano-scope .ditem:last-child{border-bottom:none}
.plano-scope .ditem .keep-radio{margin-top:3px;flex-shrink:0;display:flex;align-items:center;gap:6px}
.plano-scope .ditem .keep-radio input{width:16px;height:16px;accent-color:var(--accent-ink)}
.plano-scope .ditem .di-main .di-title{font-family:var(--sans);font-weight:700;font-size:var(--t-b2);color:var(--ink);line-height:1.3}
.plano-scope .ditem .di-main .di-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:5px}
.plano-scope .ditem.merged{opacity:.45}
.plano-scope .ditem.merged .di-title{text-decoration:line-through}
.plano-scope .ditem .keeptag{font-family:var(--mono);font-size:var(--t-m2);font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--accent-ink);background:var(--accent-soft);padding:2px 6px;border-radius:2px}
.plano-scope .dgroup-foot{display:flex;align-items:center;gap:10px;padding:11px 15px;border-top:1px solid var(--paper-3);background:var(--paper-2)}
.plano-scope .dgroup-foot .gbtn{appearance:none;font-family:var(--sans);font-weight:600;font-size:var(--t-m1);border:1.5px solid var(--ink);background:#fff;padding:7px 14px;cursor:pointer;transition:.12s}
.plano-scope .dgroup-foot .gbtn:hover{background:var(--paper-2)}
.plano-scope .dgroup-foot .gbtn.merge{background:var(--accent);border-color:var(--accent-ink)}
.plano-scope .dgroup-foot .gbtn.merge:hover{background:#9bd83e}
.plano-scope .dgroup-foot .gstate{font-family:var(--mono);font-size:var(--t-m2);color:var(--accent-ink);font-weight:700;letter-spacing:.3px;margin-left:auto;display:inline-flex;align-items:center;gap:6px}
.plano-scope .dedup-foot{padding:16px 26px;border-top:1.5px solid var(--ink);background:#fff;display:flex;align-items:center;gap:12px}
.plano-scope .dedup-foot .note{font-family:var(--mono);font-size:var(--t-m2);color:var(--muted-2);line-height:1.5}
.plano-scope .dedup-clean{text-align:center;padding:34px 20px;font-family:var(--sans);color:var(--muted)}
.plano-scope .dedup-clean .big{font-family:var(--sans);font-weight:800;font-size:var(--t-d2);color:var(--accent-ink);letter-spacing:-1px}

/* ---- Toast do plano -------------------------------------------------- */
.plano-scope .toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%) translateY(20px);background:#0a0a0a;color:#f3efe4;font-family:var(--sans);font-weight:600;font-size:var(--t-b2);padding:12px 20px;border:1.5px solid var(--accent);display:flex;align-items:center;gap:10px;z-index:200;opacity:0;transition:.25s;pointer-events:none}
.plano-scope .toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.plano-scope .toast .ic{color:var(--accent);font-family:var(--mono)}
/* Uma gravação que falhou não pode ter o mesmo aspecto de uma que correu bem. */
.plano-scope .toast.mau{border-color:var(--warn);background:#2a0f0b}
.plano-scope .toast.mau .ic{color:var(--warn)}

/* ---- Responsivo ------------------------------------------------------ */
@media (max-width:860px){
  .plano-scope .modal-body.two-col{grid-template-columns:1fr}
}
/* No telemóvel as linhas deixam de ser grelha e passam a flex com quebra:
   com cinco colunas fixas em 390px, a coluna do texto ficava com ~40px e o
   título saía uma palavra por linha. Assim a primeira fila leva os sinais
   curtos (quem, estado, prioridade, data) e o texto ocupa a linha inteira
   por baixo. */
@media (max-width:720px){
  .plano-scope .fld-row{grid-template-columns:1fr}
  .plano-scope .tl-grp{grid-template-columns:64px 1fr}
  .plano-scope .tl-when{padding:14px 12px 16px 0}
  .plano-scope .tl-when-d{font-size:var(--t-b1)}
  .plano-scope .tl-when-y{font-size:var(--t-m2);margin-top:4px}
  .plano-scope .tl-grp-body{padding:12px 0 18px 14px}
  .plano-scope .tl-stchip{min-width:0;width:auto}

  .plano-scope .tl-item,
  .plano-scope .tl-client-item{display:flex;flex-wrap:wrap;align-items:center;gap:7px 9px;padding:12px 13px}
  .plano-scope .tl-fav-cell,
  .plano-scope .tl-ci-bullet{flex:0 0 auto;order:1}
  .plano-scope .tl-item .tl-stchip{flex:0 0 auto;order:2}
  .plano-scope .tl-col{flex:0 0 auto;border-left:none;padding:0}
  .plano-scope .tl-col-prio{order:3}
  /* Sem `margin-left:auto`: empurrada para a direita, a data caía sozinha
     para uma segunda linha em vez de ficar ao lado dos outros sinais. */
  .plano-scope .tl-col-date{order:4}
  .plano-scope .tl-item-body,
  .plano-scope .tl-ci-body{flex:1 1 100%;order:5;min-width:0}
  .plano-scope .tl-item-title,
  .plano-scope .tl-ci-title{font-size:var(--t-b2)}

  .plano-scope .plano-search{min-width:0;flex:1 1 100%}
  /* Os dois botões não cabem lado a lado em 390px — o "Nova tarefa" saía
     do ecrã. Com base flexível põem-se lado a lado quando há espaço e
     empilham quando não há, sem nunca transbordar. */
  .plano-scope .plano-actions{margin-left:0;width:100%;flex-wrap:wrap}
  .plano-scope .plano-actions .plano-btn{flex:1 1 160px;min-width:0;justify-content:center}
  .plano-scope .tl-client-h{padding:14px 16px;gap:11px}
  .plano-scope .tl-client-title{font-size:var(--t-b2)}
  .plano-scope .tl-grp-sum{margin-left:0;justify-content:flex-start;width:100%}
}
