/* ==========================================================================
   Módulo Tarefas — Quadro (Kanban) + Modal de tarefa.
   Carregado globalmente via <link> em template/main.html. As classes são
   namespaced (tk-*, pautagem-*, minicard-*) e usadas em /tarefas e /calendario
   (o modal é um partial compartilhado pelos dois).
   ========================================================================== */

/* --------------------------------------------------------------------------
   QUADRO (Kanban): filtros + 4 colunas fixas + cards arrastáveis.
   -------------------------------------------------------------------------- */
.tk-cols { display:flex; gap:16px; overflow-x:auto; padding-bottom:8px; align-items:flex-start; }
.tk-col { background:#fff; border:1px solid var(--card-border); border-top:3px solid #cdd6e6; border-radius:4px; min-width:260px; max-width:300px; flex:1; display:flex; flex-direction:column; transition:border-color .15s ease,background .15s ease; }
.tk-col.drag-over { border-color:var(--accent-dark); background:#eef2f9; }
.tk-col-head { padding:10px 12px; border-bottom:1px solid var(--card-border); display:flex; align-items:center; gap:8px; }
.tk-col-title { flex:1; font-family:'Helvetica Neue',sans-serif; font-size:11px; text-transform:uppercase; letter-spacing:.12em; color:var(--text-primary); font-weight:600; }
.tk-col-count { font-family:'Helvetica Neue',sans-serif; font-size:11px; color:var(--text-secondary); background:var(--bg); padding:2px 8px; border-radius:10px; min-width:22px; text-align:center; }
.tk-col-clear { background:none; border:none; color:var(--text-secondary); cursor:pointer; font-size:14px; line-height:1; padding:2px 4px; border-radius:3px; }
.tk-col-clear:hover { background:var(--bg); color:#a04040; }
.tk-col-cards { padding:10px; display:flex; flex-direction:column; gap:8px; min-height:60px; }
.tk-col-cards:empty::after { content:'Sem tarefas'; display:block; text-align:center; color:var(--text-secondary); font-family:'Helvetica Neue',sans-serif; font-size:11px; font-style:italic; padding:16px 8px; opacity:.5; }
.tk-add { margin:0 10px 10px; padding:7px 10px; background:transparent; border:1px dashed var(--card-border); border-radius:4px; color:var(--text-secondary); font-family:'Helvetica Neue',sans-serif; font-size:12px; cursor:pointer; text-align:left; }
.tk-add:hover { border-color:var(--accent); color:var(--text-primary); }

.tk-card { background:#fff; border:1px solid var(--card-border); border-radius:4px; padding:10px 12px; cursor:grab; transition:box-shadow .15s ease,border-color .15s ease; user-select:none; position:relative; }
.tk-card:hover { box-shadow:var(--shadow); border-color:var(--accent); }
.tk-card.dragging { opacity:.4; cursor:grabbing; }
.tk-card.hidden-filter { display:none; }
/* Ícones no canto superior direito do card (tipo + categoria), fiel ao protótipo */
.tk-card-icons { position:absolute; top:8px; right:10px; display:flex; align-items:center; gap:6px; }
.tk-card-icons svg { width:14px; height:14px; display:block; }
.tk-type-icon, .tk-cat-icon { display:inline-flex; align-items:center; justify-content:center; }
.tk-type-evento { color:#3a6a8d; } .tk-type-reuniao_originada { color:#c8956d; }
.tk-cat-minha { color:#5d7a8c; } .tk-cat-recebida { color:#a04040; }
.tk-cat-delegada { color:#3a7d44; } .tk-cat-compartilhada { color:#8a5dab; }
.tk-card-title { font-family:'Georgia',serif; font-size:13.5px; font-weight:600; color:var(--text-primary); line-height:1.3; margin-bottom:4px; }
.tk-card-desc { font-family:'Helvetica Neue',sans-serif; font-size:11.5px; color:var(--text-secondary); line-height:1.4; margin-bottom:8px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.tk-card-tags { display:flex; flex-wrap:wrap; align-items:center; gap:4px 6px; margin-bottom:6px; }
.tk-tag { display:inline-flex; align-items:center; gap:3px; font-family:'Helvetica Neue',sans-serif; font-size:10px; padding:1px 7px; border-radius:9px; background:var(--bg); color:var(--text-secondary); }
.tk-tag.unread { background:#fdecec; color:#a04040; font-weight:600; }
.tk-tag.complete { background:#e3f0e5; color:#2f6b3a; }
/* Tag de vencimento com cor por status (fiel ao protótipo) */
.tk-due { display:inline-flex; align-items:center; font-family:'Helvetica Neue',sans-serif; font-size:10px; padding:1px 7px; border-radius:9px; background:var(--bg); color:var(--text-secondary); }
.tk-due-overdue { background:#fdecec; color:#a04040; font-weight:600; }
.tk-due-today { background:#fcf3d4; color:#5a4310; font-weight:600; }
.tk-due-soon { background:#fcf3d4; color:#5a4310; }
.tk-card-created { font-family:'Helvetica Neue',sans-serif; font-size:10px; color:var(--text-secondary); margin:2px 0 6px; }
.tk-card-foot { display:flex; align-items:center; gap:6px; }
.tk-avatars { display:flex; flex:1; }
.tk-avatar { width:24px; height:24px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-family:'Helvetica Neue',sans-serif; font-size:9px; font-weight:700; background:#c8b694; margin-left:-6px; border:2px solid #fff; }
.tk-avatar:first-child { margin-left:0; }
.tk-created { font-family:'Helvetica Neue',sans-serif; font-size:9.5px; color:var(--text-secondary); }
.tk-btn { background:none; border:none; color:var(--text-secondary); cursor:pointer; font-size:13px; line-height:1; padding:1px 4px; border-radius:3px; }
.tk-btn:hover { background:var(--bg); color:var(--text-primary); }
.tk-star.on { color:#d4a017; }

/* Filtros */
.tk-filters { display:flex; flex-direction:column; gap:8px; background:#f0efe8; border:1px solid rgba(26,31,46,.08); border-radius:6px; padding:10px 14px; margin-bottom:14px; }
.tk-filter-row { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.tk-filter-label { font-family:'Helvetica Neue',sans-serif; font-size:10px; text-transform:uppercase; letter-spacing:.15em; color:var(--text-secondary); margin-right:4px; min-width:64px; }
.tk-chip { display:inline-flex; align-items:center; gap:5px; padding:3px 11px; background:#fff; border:1px solid var(--card-border); border-radius:16px; font-family:'Helvetica Neue',sans-serif; font-size:12px; color:var(--text-primary); cursor:pointer; transition:all .15s ease; user-select:none; }
.tk-chip:hover { border-color:var(--accent); }
.tk-chip.on { background:var(--accent); color:#fff; border-color:var(--accent); }
.tk-chip .tk-miniav { width:18px; height:18px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:#c8b694; color:#fff; font-size:8px; font-weight:700; }
.tk-search { flex:1; min-width:160px; max-width:260px; }
.tk-search input { width:100%; padding:5px 10px; border:1px solid var(--card-border); border-radius:16px; font-size:12px; font-family:'Helvetica Neue',sans-serif; }
.tk-clear { background:none; border:none; color:var(--text-secondary); font-family:'Helvetica Neue',sans-serif; font-size:11px; cursor:pointer; text-decoration:underline; }
.tk-empty-me { text-align:center; color:var(--text-secondary); font-family:'Helvetica Neue',sans-serif; font-style:italic; padding:50px 20px; }

/* --------------------------------------------------------------------------
   MODAL DE TAREFA (partial compartilhado por /tarefas e /calendario).
   Classes modal/btn/input são globais (style.css).
   -------------------------------------------------------------------------- */
.tk-saved { font-family:'Helvetica Neue',sans-serif; font-size:11px; color:#2f6b3a; opacity:0; transition:opacity .2s ease; margin-right:8px; }
.tk-saved.show { opacity:1; }
.tk-field { margin-bottom:14px; }
.tk-field-label { display:block; font-family:'Helvetica Neue',sans-serif; font-size:10px; text-transform:uppercase; letter-spacing:.12em; color:var(--text-secondary); margin-bottom:6px; }
.tk-people { display:flex; flex-wrap:wrap; gap:6px; }
.tk-people .tk-miniav { width:30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:#cfcabb; color:#fff; font-size:11px; font-weight:700; cursor:pointer; opacity:.45; transition:opacity .15s ease,box-shadow .15s ease; }
.tk-people .tk-miniav.on { opacity:1; box-shadow:0 0 0 2px var(--accent); }
.tk-bus { display:flex; flex-wrap:wrap; gap:6px; }
.tk-bus-empty { font-family:'Helvetica Neue',sans-serif; font-size:12px; color:var(--text-secondary); font-style:italic; }
.tk-hint { font-family:'Helvetica Neue',sans-serif; font-size:11px; color:var(--text-secondary); margin-top:8px; }
/* Linha Tipo + estrela + ícone de vencimento (fiel ao protótipo) */
.tk-typerow { display:flex; align-items:center; gap:8px; flex-wrap:wrap; position:relative; }
.tk-typerow select.modal-input { flex:1; min-width:200px; max-width:320px; }
.tk-star-inline { background:#fff; border:1px solid var(--card-border); border-radius:50%; width:36px; height:36px; cursor:pointer; font-size:18px; line-height:1; color:#c9c0a8; display:inline-flex; align-items:center; justify-content:center; transition:all .15s ease; flex-shrink:0; }
.tk-star-inline:hover { color:var(--master-gold); border-color:var(--master-gold); transform:scale(1.05); }
.tk-star-inline.on { color:var(--master-gold); background:linear-gradient(90deg,#fef9e7,#fcf3d4); border-color:var(--master-gold); }
.tk-dateicon { background:#fff; border:1px dashed var(--card-border); border-radius:6px; padding:8px 10px; cursor:pointer; display:flex; align-items:center; gap:6px; font-family:'Helvetica Neue',sans-serif; font-size:12px; color:var(--text-secondary); transition:all .15s ease; min-height:36px; }
.tk-dateicon:hover { border-color:var(--accent); background:var(--bg); }
.tk-dateicon.has-date { border-style:solid; border-color:var(--accent-dark); background:linear-gradient(90deg,#fef9e7,#fcf3d4); color:#5a4310; font-weight:600; }
.tk-dateicon svg { width:14px; height:14px; display:block; }
.tk-dateicon-input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; left:0; top:0; }
.tk-dateclear { background:none; border:1px solid var(--card-border); border-radius:50%; width:22px; height:22px; cursor:pointer; color:var(--text-secondary); font-size:14px; line-height:1; padding:0; display:flex; align-items:center; justify-content:center; }
.tk-dateclear:hover { color:#c0392b; border-color:#c0392b; }
/* Botão (i) + popup de formatações na Descrição */
.tk-desc-info { display:inline-flex; align-items:center; justify-content:center; width:18px; height:18px; border-radius:50%; background:none; border:1px solid var(--card-border); color:var(--text-secondary); cursor:pointer; padding:0; margin-left:6px; vertical-align:middle; }
.tk-desc-info:hover { color:var(--accent-dark); border-color:var(--accent-dark); }
.tk-desc-info svg { width:11px; height:11px; display:block; }
.tk-desc-popup { background:#fff; border:1px solid var(--card-border); border-radius:6px; padding:12px 14px; margin:6px 0 10px; box-shadow:0 4px 12px rgba(0,0,0,.08); font-family:'Helvetica Neue',sans-serif; }
.tk-desc-popup-title { font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:1px; color:var(--accent-dark); margin-bottom:8px; }
.tk-desc-popup-grid { display:grid; grid-template-columns:max-content 1fr; gap:4px 12px; align-items:center; font-size:12px; }
.tk-desc-popup-grid code { background:var(--bg); padding:2px 6px; border-radius:3px; font-family:'Menlo','Monaco',monospace; font-size:11px; color:var(--text-primary); border:1px solid var(--card-border); }
.tk-desc-popup-grid span { color:var(--text-secondary); }
/* Checklist com adição preguiçosa */
.tk-checklist-addbtn { margin-top:4px; padding:6px 8px; color:var(--text-secondary); font-family:'Helvetica Neue',sans-serif; font-size:13px; cursor:pointer; border-radius:3px; background:none; border:none; text-align:left; width:100%; }
.tk-checklist-addbtn:hover { background:var(--card-bg); color:var(--text-primary); }
.tk-checklist-item { display:flex; align-items:center; gap:8px; padding:4px 0; }
.tk-checklist-item.done .tk-cl-text { text-decoration:line-through; color:var(--text-secondary); }
.tk-cl-text { flex:1; font-size:13px; border:1px solid transparent; border-radius:3px; padding:2px 4px; }
.tk-cl-text:focus { border-color:var(--accent); outline:none; background:#fff; }
.tk-cl-del { background:none; border:none; color:var(--text-secondary); cursor:pointer; }
.tk-cl-del:hover { color:#a04040; }
.tk-comment { padding:8px 0; border-bottom:1px solid var(--card-border); }
.tk-comment-meta { font-family:'Helvetica Neue',sans-serif; font-size:10px; color:var(--text-secondary); margin-bottom:3px; }
.tk-comment-body { font-size:13px; color:var(--text-primary); white-space:pre-wrap; }
.tk-attach-group { border:1px solid var(--card-border); border-radius:4px; padding:8px 10px; margin-bottom:8px; }
.tk-attach-versions { margin-top:6px; padding-left:10px; border-left:2px solid var(--card-border); }
.tk-attach-version { font-size:12px; margin:3px 0; display:flex; gap:6px; align-items:center; }
.tk-attach-note { color:var(--text-secondary); font-style:italic; }
/* Atas de reunião (Fase 2.5) */
.tk-ata-chips { display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin-bottom:14px; padding-bottom:10px; border-bottom:1px solid var(--card-border); }
.tk-ata-chip { padding:4px 12px; border:1px solid var(--card-border); border-radius:14px; background:#fff; font-family:'Helvetica Neue',sans-serif; font-size:12px; color:var(--text-primary); cursor:pointer; }
.tk-ata-chip.on { background:var(--accent); color:#fff; border-color:var(--accent); }
.tk-ata-new { padding:4px 10px; border:1px dashed var(--card-border); border-radius:14px; background:none; font-family:'Helvetica Neue',sans-serif; font-size:12px; color:var(--text-secondary); cursor:pointer; }
.tk-ata-new:hover { border-color:var(--accent); color:var(--accent); }
.tk-ata-daterow { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin-bottom:14px; }
.tk-ata-toolbar { display:flex; gap:4px; margin-bottom:6px; }
.tk-ata-tbbtn { min-width:30px; height:26px; padding:0 8px; border:1px solid var(--card-border); background:#fff; border-radius:4px; cursor:pointer; font-size:12px; color:var(--text-primary); }
.tk-ata-tbbtn:hover { border-color:var(--accent); }
.tk-ata-editor { min-height:120px; border:1px solid var(--card-border); border-radius:4px; padding:8px 10px; font-size:13px; line-height:1.5; overflow:auto; }
.tk-ata-editor:focus { outline:none; border-color:var(--accent); }
.tk-ata-editor:empty:before { content:attr(data-ph); color:var(--text-secondary); font-style:italic; }
.tk-ata-item { display:flex; align-items:center; gap:8px; padding:5px 0; border-bottom:1px solid #f0efe8; }
.tk-ata-item.done .tk-ata-itext { text-decoration:line-through; color:var(--text-secondary); }
.tk-ata-itext { flex:1; font-size:13px; border:1px solid transparent; border-radius:3px; padding:2px 4px; }
.tk-ata-itext:focus { border-color:var(--accent); outline:none; background:#fff; }
.tk-ata-due { font-size:11px; color:#8b5e3c; white-space:nowrap; }
.tk-ata-meta { display:flex; align-items:center; gap:4px; flex-shrink:0; }
.tk-ata-av { width:22px; height:22px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-size:9px; font-weight:700; }
.tk-ata-empty { text-align:center; color:var(--text-secondary); padding:18px 0; }
/* Vínculo de reunião de origem */
.tk-origin { display:flex; align-items:center; gap:8px; padding:8px 12px; margin-bottom:14px; border-radius:6px; background:#f3ece3; border:1px solid #e0d3c2; font-family:'Helvetica Neue',sans-serif; font-size:13px; color:var(--text-primary); }
.tk-origin.orfao { background:#f6ecec; border-color:#e3c9c9; color:#7d4a4a; font-style:italic; }
/* Pautagem (Fase 2.5c) */
.pautagem-backdrop { position:fixed; inset:0; z-index:4000; background:var(--bg-primary,#f3efe7); overflow:auto; }
.pautagem-shell { max-width:1200px; margin:0 auto; padding:28px 32px; }
.pautagem-header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; border-bottom:1px solid var(--card-border); padding-bottom:16px; margin-bottom:20px; }
.pautagem-title { font-family:Georgia,'Times New Roman',serif; font-size:24px; margin:0 0 4px; color:var(--text-primary); }
.pautagem-subtitle { font-family:'Helvetica Neue',sans-serif; font-size:12px; color:var(--text-secondary); margin:0; max-width:640px; }
.pautagem-actions { display:flex; gap:10px; flex-shrink:0; }
.pautagem-content { display:flex; flex-wrap:wrap; gap:18px; align-items:flex-start; }
.pautagem-panel { width:300px; background:#fff; border:1px solid var(--card-border); border-radius:8px; padding:14px; }
.pautagem-panel-header { display:flex; align-items:center; gap:10px; padding-bottom:10px; margin-bottom:10px; border-bottom:1px solid var(--card-border); }
.pautagem-panel-av { width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-size:12px; font-weight:700; }
.pautagem-panel-name { font-weight:700; font-size:14px; color:var(--text-primary); }
.pautagem-panel-count { font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--text-secondary); }
.pautagem-minicards { display:flex; flex-direction:column; gap:10px; min-height:40px; }
.minicard { border:1px solid var(--card-border); border-radius:6px; padding:10px; background:#faf7f1; cursor:grab; transition:box-shadow .15s ease,border-color .15s ease; }
.minicard:hover { border-color:var(--accent); }
.minicard.minicard-grouped { background:#f0ece2; border-style:solid; }
.minicard.dragging { opacity:.4; }
.minicard.drag-over { border-color:var(--accent); box-shadow:0 0 0 2px var(--accent); }
.minicard-count { font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:var(--accent); font-weight:700; margin-bottom:5px; }
.minicard-item { font-size:13px; color:var(--text-primary); padding:2px 0; }
.minicard-data { margin-top:6px; font-size:11px; color:#8b5e3c; }
.mc-edit-item { display:flex; gap:6px; align-items:center; margin-bottom:6px; }
.mc-edit-rm { background:none; border:none; color:var(--text-secondary); cursor:pointer; font-size:16px; }
.mc-edit-rm:hover { color:#a04040; }
