/* ===================================================================
   PAINEL DE TRABALHO — estilos
   Tecnologia + Elegância + Organização
=================================================================== */

:root{
  --accent: #8B00C4;
  --accent-rgb: 139,0,196;
  --accent-soft: #f2e2fa;
  --accent-soft-text: #5a0d80;

  --bg: #FFFFFF;
  --bg-elevated: #FFFFFF;
  --bg-sunken: #F6F3F9;
  --text: #111111;
  --text-secondary: #555555;
  --text-faint: #9a9a9a;
  --border: #ECE6F2;
  --border-strong: #DDD3E6;
  --row-divider: #C7BFD2;
  --card-shadow: 0 1px 2px rgba(20,10,30,0.04), 0 4px 16px rgba(20,10,30,0.05);
  --card-shadow-hover: 0 4px 10px rgba(20,10,30,0.06), 0 10px 28px rgba(20,10,30,0.09);

  --danger: #C0392B;
  --danger-soft: #FBE5E1;
  --warning: #E08E0B;
  --warning-soft: #FCEEDA;
  --success: #2E9E5B;
  --success-soft: #E1F5E9;
  --gray-dark: #3A3A3A;
  --gray-soft: #ECECEC;

  --very-urgent-empty: #E8DFEE;
  --very-urgent-empty-text: #3d2b4a;

  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 20px;

  --sidebar-w: 248px;
  --sidebar-w-collapsed: 72px;

  color-scheme: light;
}

:root[data-theme="dark"]{
  --bg: #000000;
  --bg-elevated: #181818;
  --bg-sunken: #0c0c0c;
  --text: #F4F2F6;
  --text-secondary: #B4AEBB;
  --text-faint: #746e7c;
  --border: #2A2530;
  --border-strong: #3a3341;
  --row-divider: #4a4353;
  --card-shadow: 0 1px 2px rgba(0,0,0,0.4), 0 4px 18px rgba(0,0,0,0.45);
  --card-shadow-hover: 0 6px 20px rgba(0,0,0,0.55);
  --accent-soft: #2a1533;
  --accent-soft-text: #d9a6f7;
  --danger-soft: #3a1e1a;
  --warning-soft: #3a2c14;
  --success-soft: #123322;
  --gray-soft: #232323;
  --very-urgent-empty: #241a2c;
  --very-urgent-empty-text: #cbb8d8;
  color-scheme: dark;
}

*{ box-sizing: border-box; }
html,body{ height:100%; }
body{
  margin:0;
  font-family: 'Nunito', system-ui, -apple-system, sans-serif;
  background: var(--bg);
  color: var(--text);
  -webkit-font-smoothing: antialiased;
  transition: background-color .35s ease, color .35s ease;
}
#root{ height:100%; }
h1,h2,h3,h4{ font-weight:800; letter-spacing:-0.01em; margin:0; }
button{ font-family:inherit; }
input,textarea,select{ font-family:inherit; }
a{ color:inherit; }

::-webkit-scrollbar{ width:9px; height:9px; }
::-webkit-scrollbar-track{ background:transparent; }
::-webkit-scrollbar-thumb{ background: var(--border-strong); border-radius:10px; }
::-webkit-scrollbar-thumb:hover{ background: var(--accent); }

/* ---------------------------------------------------------------
   Tela de senha
--------------------------------------------------------------- */
.lock-screen{
  height:100vh; width:100vw; display:flex; align-items:center; justify-content:center;
  background: radial-gradient(circle at 30% 20%, rgba(139,0,196,0.12), transparent 45%),
              radial-gradient(circle at 80% 80%, rgba(139,0,196,0.08), transparent 45%),
              var(--bg);
  animation: fadeIn .5s ease;
}
.lock-card{
  background: var(--bg-elevated);
  border:1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--card-shadow-hover);
  padding: 40px 36px;
  width: 340px;
  text-align:center;
  animation: riseIn .5s cubic-bezier(.2,.8,.2,1);
}
.lock-card .lock-icon{
  width:56px;height:56px;border-radius:16px;
  background: linear-gradient(135deg, var(--accent), #b34de0);
  display:flex; align-items:center; justify-content:center;
  margin:0 auto 18px; font-size:26px; color:#fff;
  box-shadow: 0 8px 20px rgba(var(--accent-rgb),.35);
}
.lock-card h1{ font-size:20px; margin-bottom:4px; }
.lock-card p{ color:var(--text-secondary); font-size:13.5px; margin:0 0 22px; }
.lock-input{
  width:100%; text-align:center; letter-spacing:8px; font-size:22px; font-weight:700;
  padding:14px 10px; border-radius: var(--radius-md); border:1.5px solid var(--border-strong);
  background: var(--bg-sunken); color:var(--text); outline:none;
  transition: border-color .2s, box-shadow .2s;
}
.lock-input:focus{ border-color: var(--accent); box-shadow: 0 0 0 4px rgba(var(--accent-rgb),.12); }
.lock-input.shake{ animation: shake .4s; border-color: var(--danger); }
.lock-btn{
  margin-top:16px; width:100%; padding:12px; border:none; border-radius: var(--radius-md);
  background: var(--accent); color:#fff; font-weight:700; font-size:14.5px; cursor:pointer;
  transition: transform .15s ease, box-shadow .15s ease, opacity .15s;
}
.lock-btn:hover{ transform: translateY(-1px); box-shadow: 0 8px 18px rgba(var(--accent-rgb),.3); }
.lock-btn:active{ transform: translateY(0); }
.lock-error{ color:var(--danger); font-size:12.5px; margin-top:10px; height:14px; }

@keyframes shake{ 10%,90%{transform:translateX(-1px)} 20%,80%{transform:translateX(2px)} 30%,50%,70%{transform:translateX(-5px)} 40%,60%{transform:translateX(5px)} }

/* ---------------------------------------------------------------
   Layout geral
--------------------------------------------------------------- */
.app-shell{ display:flex; height:100vh; width:100vw; overflow:hidden; animation: fadeIn .4s ease; }

.sidebar{
  width: var(--sidebar-w);
  flex-shrink:0;
  background: var(--bg-elevated);
  border-right:1px solid var(--border);
  display:flex; flex-direction:column;
  transition: width .25s cubic-bezier(.2,.8,.2,1);
  overflow:hidden;
}
.sidebar.collapsed{ width: var(--sidebar-w-collapsed); }
.sidebar-brand{
  display:flex; align-items:center; gap:10px; padding:18px 16px;
  border-bottom:1px solid var(--border); white-space:nowrap;
}
.sidebar-brand .logo{
  width:34px;height:34px;border-radius:10px; flex-shrink:0;
  background: linear-gradient(135deg, var(--accent), #b34de0);
  display:flex;align-items:center;justify-content:center; color:#fff; font-size:16px;
  box-shadow: 0 4px 12px rgba(var(--accent-rgb),.3);
}
.sidebar-brand span{ font-weight:800; font-size:12.5px; overflow:hidden; text-overflow:ellipsis; text-transform:uppercase; letter-spacing:.015em; white-space:nowrap; }
.sidebar-nav{ flex:1; overflow-y:auto; padding:10px; display:flex; flex-direction:column; gap:2px; }
.sidebar-item{
  display:flex; align-items:center; gap:12px; padding:10px 12px; border-radius: var(--radius-sm);
  cursor:pointer; color:var(--text-secondary); font-weight:700; font-size:13.5px;
  white-space:nowrap; position:relative; transition: background .15s, color .15s;
  border:none; background:none; width:100%; text-align:left;
}
.sidebar-item .ic{ width:20px; height:20px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.sidebar-item .lbl{ flex:1; overflow:hidden; text-overflow:ellipsis; text-transform:uppercase; letter-spacing:.03em; font-size:12.5px; }
.sidebar-item .cnt{
  font-size:11px; font-weight:800; background: var(--gray-soft); color:var(--text-secondary);
  padding:1px 7px; border-radius:20px; flex-shrink:0;
}
.sidebar-item:hover{ background: var(--bg-sunken); color:var(--text); }
.sidebar-item.active{ background: var(--accent-soft); color: var(--accent-soft-text); }
.sidebar-item.active .cnt{ background: var(--accent); color:#fff; }
.sidebar-item.active::before{
  content:""; position:absolute; left:-10px; top:6px; bottom:6px; width:5px; border-radius:0 4px 4px 0;
  background: var(--accent-soft-text);
  box-shadow: 0 0 8px rgba(var(--accent-rgb),.55);
}
.sidebar-foot{ padding:10px; border-top:1px solid var(--border); display:flex; flex-direction:column; gap:6px; }
.collapse-btn{
  display:flex; align-items:center; justify-content:center; gap:8px; padding:9px; border-radius: var(--radius-sm);
  border:none; background: var(--bg-sunken); color:var(--text-secondary); cursor:pointer; font-weight:700; font-size:12.5px;
  transition: background .15s;
}
.collapse-btn:hover{ background: var(--border); }

.main-area{ flex:1; display:flex; flex-direction:column; min-width:0; overflow:hidden; }

.topbar{
  display:flex; align-items:center; gap:14px; padding:12px 22px;
  border-bottom:1px solid var(--border); flex-shrink:0; background: var(--bg);
}
.topbar h2{ font-size:17px; }
.topbar-search{
  flex:1; max-width:360px; display:flex; align-items:center; gap:8px;
  background: var(--bg-sunken); border:1px solid var(--border); border-radius: 20px;
  padding:8px 14px; color: var(--text-faint); cursor:pointer; font-size:13px; transition:border-color .15s;
}
.topbar-search:hover{ border-color: var(--border-strong); }
.topbar-search kbd{
  margin-left:auto; font-size:10.5px; background: var(--bg-elevated); border:1px solid var(--border-strong);
  border-radius:5px; padding:1px 6px; color:var(--text-faint);
}
.topbar-right{ display:flex; align-items:center; gap:10px; margin-left:auto; }
.icon-btn{
  width:36px; height:36px; border-radius:10px; border:1px solid var(--border); background: var(--bg-elevated);
  display:flex; align-items:center; justify-content:center; cursor:pointer; color:var(--text-secondary);
  transition: background .15s, transform .15s, color .15s; font-size:15px;
}
.icon-btn:hover{ background: var(--bg-sunken); color: var(--accent); transform: translateY(-1px); }

.today-banner{
  display:flex; align-items:center; gap:8px; font-size:12.5px; font-weight:700; color: var(--accent);
  background: var(--accent-soft); border-radius:20px; padding:6px 12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  max-width:260px;
}
.today-banner .dot{ width:7px;height:7px;border-radius:50%; background: var(--accent); animation: blinkSlow 2.2s ease-in-out infinite; flex-shrink:0; }

.content-scroll{ flex:1; overflow-y:auto; padding:20px 24px 60px; }

/* ---------------------------------------------------------------
   Muito urgente (barra fixa)
--------------------------------------------------------------- */
.urgent-bar{
  margin:0 24px 0; margin-top:16px; border-radius: var(--radius-md);
  background: linear-gradient(120deg, var(--accent), #a733d9);
  color:#fff; overflow:hidden; box-shadow: 0 8px 22px rgba(var(--accent-rgb),.28);
  transition: all .25s ease; flex-shrink:0;
}
.urgent-bar.empty{ background: var(--very-urgent-empty); color: var(--very-urgent-empty-text); box-shadow:none; }
.urgent-bar-head{ display:flex; align-items:center; gap:10px; padding:10px 16px; cursor:pointer; }
.urgent-bar-head strong{ font-size:12.5px; letter-spacing:.04em; text-transform:uppercase; }
.urgent-bar-head .cnt{ font-size:11px; font-weight:800; background: rgba(255,255,255,.25); padding:1px 8px; border-radius:20px; }
.urgent-bar.empty .cnt{ background: rgba(0,0,0,.08); }
.urgent-bar-head .chev{ margin-left:auto; transition: transform .2s; font-size:12px; }
.urgent-bar-head .chev.open{ transform: rotate(180deg); }
.urgent-bar-body{ max-height:180px; overflow-y:auto; padding: 0 12px 10px; }
.urgent-item{
  display:flex; align-items:center; gap:10px; padding:7px 8px; border-radius:8px; font-size:13.5px;
  background: rgba(255,255,255,.12);
}
.urgent-bar.empty .urgent-item{ background: rgba(255,255,255,.55); }
.urgent-item + .urgent-item{ margin-top:5px; }
.urgent-item input[type=checkbox]{ width:16px;height:16px; accent-color:#fff; cursor:pointer; }
.urgent-item.done span{ text-decoration: line-through; opacity:.55; }
.urgent-item .txt{ flex:1; background:none; border:none; color:inherit; font-size:13.5px; font-weight:600; outline:none; font-family:inherit; }
.urgent-item .del{ opacity:.7; cursor:pointer; background:none; border:none; color:inherit; font-size:13px; }
.urgent-item .del:hover{ opacity:1; }
.urgent-add{
  display:flex; gap:8px; padding:6px 8px; margin-top:5px;
}
.urgent-add input{
  flex:1; background: rgba(255,255,255,.18); border:1px solid rgba(255,255,255,.3); border-radius:8px;
  padding:7px 10px; color:#fff; font-size:13px; outline:none;
}
.urgent-bar.empty .urgent-add input{ background:#fff; border-color: var(--border-strong); color:var(--text); }
.urgent-add input::placeholder{ color: rgba(255,255,255,.75); }
.urgent-bar.empty .urgent-add input::placeholder{ color: var(--text-faint); }

/* ---------------------------------------------------------------
   Cards genéricos / seções
--------------------------------------------------------------- */
.section-title{ display:flex; align-items:center; gap:8px; margin: 22px 0 10px; }
.section-title h3{ font-size:13px; letter-spacing:.05em; text-transform:uppercase; color:var(--text-secondary); }
.section-title .cnt{ font-size:11px; font-weight:800; color:var(--text-faint); background:var(--bg-sunken); padding:1px 8px; border-radius:20px;}
.section-title.empty h3, .section-title.empty .cnt{ opacity:.4; }

.card{
  background: var(--bg-elevated); border:1px solid var(--border); border-radius: var(--radius-md);
  box-shadow: var(--card-shadow); transition: box-shadow .2s ease, transform .2s ease;
}
.card:hover{ box-shadow: var(--card-shadow-hover); }

.fade-in{ animation: fadeIn .35s ease; }
.rise-in{ animation: riseIn .3s cubic-bezier(.2,.8,.2,1); }

@keyframes fadeIn{ from{opacity:0} to{opacity:1} }
@keyframes riseIn{ from{opacity:0; transform:translateY(8px)} to{opacity:1; transform:translateY(0)} }
@keyframes blinkSlow{ 0%,100%{opacity:1} 50%{opacity:.25} }
@keyframes popIn{ from{ transform:scale(.9); opacity:0 } to{ transform:scale(1); opacity:1 } }

/* ---------------------------------------------------------------
   Afazeres — cabeçalho, chips de filtro, pill de categoria por linha
--------------------------------------------------------------- */
.afaz-header{ display:flex; align-items:center; flex-wrap:wrap; gap:14px; margin-bottom:16px; }
.afaz-header h3{ font-size:19px; font-weight:800; letter-spacing:-0.01em; }
.afaz-header-actions{ display:flex; align-items:center; gap:16px; margin-left:auto; flex-wrap:wrap; }
.link-action{ font-size:12.5px; font-weight:700; color:var(--text-secondary); cursor:pointer; white-space:nowrap; transition:color .15s; }
.link-action:hover{ color:var(--accent); }
.link-action-plus{
  background: var(--accent); border:none; color:#fff; font-size:20px; font-weight:800; cursor:pointer; line-height:1;
  width:28px; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0;
  box-shadow: 0 3px 10px rgba(var(--accent-rgb),.35); transition: transform .15s, box-shadow .15s;
}
.link-action-plus:hover{ transform:scale(1.1); box-shadow: 0 5px 14px rgba(var(--accent-rgb),.45); }

.chip-filter-bar{ display:flex; flex-wrap:wrap; gap:9px; margin-bottom:20px; }
.chip-filter{
  padding:8px 16px; border-radius:22px; font-size:12.5px; font-weight:700; cursor:pointer;
  border:1.5px solid var(--border-strong); background: var(--bg-elevated); color:var(--text-secondary);
  transition: all .15s; white-space:nowrap; text-transform:uppercase; letter-spacing:.02em;
}
.chip-filter:hover{ border-color: var(--accent); color:var(--accent); }
.chip-filter.active{ background: var(--accent); border-color: var(--accent); color:#fff; box-shadow: 0 4px 14px rgba(var(--accent-rgb),.28); }
.chip-filter.drag-over{ outline:2px dashed var(--accent); outline-offset:2px; }
.chip-filter.chip-empty{ opacity:.5; }
.chip-filter.chip-empty:hover{ opacity:.85; }
.chip-filter.chip-empty.active{ opacity:1; }

.task-flat-list{ display:flex; flex-direction:column; gap:9px; }

.cat-pill-wrap{ position:relative; flex-shrink:0; }
.cat-pill{
  display:inline-flex; align-items:center; gap:5px; padding:5px 11px; border-radius:20px;
  font-size:10.5px; font-weight:800; letter-spacing:.02em; border:1.5px solid; cursor:pointer; white-space:nowrap;
  font-family:'Nunito',sans-serif; background:none;
}
.cat-pill .chev{ font-size:9px; opacity:.7; }
.cat-pill-menu{
  position:absolute; top:calc(100% + 6px); left:0; z-index:20; background:var(--bg-elevated); border:1px solid var(--border);
  border-radius:12px; box-shadow: var(--card-shadow-hover); padding:6px; min-width:190px; animation: riseIn .15s ease;
}
.cat-pill-option{ display:flex; align-items:center; gap:8px; padding:8px 10px; border-radius:8px; font-size:12.5px; font-weight:700; cursor:pointer; color:var(--text); text-transform:uppercase; letter-spacing:.02em; }
.cat-pill-option:hover{ background:var(--bg-sunken); }
.cat-pill-option .dot{ width:8px;height:8px;border-radius:50%; flex-shrink:0; }

.note-prev-purple{ font-size:12px; font-weight:400; color: var(--accent); margin-top:3px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.desc-prev-purple{ font-size:12px; font-weight:400; font-style:italic; color: var(--accent); margin-top:3px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.note-prev-purple.note-late{ background: var(--danger); color:#fff; font-weight:700; padding:3px 8px; border-radius:6px; display:inline-block; max-width:100%; }

/* ---------------------------------------------------------------
   Categorias (Afazeres)
--------------------------------------------------------------- */
.cat-group{ margin-bottom:22px; }
.cat-head{
  display:flex; align-items:center; gap:9px; padding:8px 4px; cursor:pointer; user-select:none;
}
.cat-dot{ width:9px;height:9px;border-radius:50%; flex-shrink:0; }
.cat-head h3{ font-size:13.5px; font-weight:800; letter-spacing:.03em; text-transform:uppercase; }
.cat-head .cnt{ font-size:11px; font-weight:800; padding:1px 8px; border-radius:20px; background:var(--bg-sunken); color:var(--text-secondary); }
.cat-group.empty .cat-head{ opacity:.42; }
.cat-head .chev{ margin-left:auto; font-size:12px; color:var(--text-faint); transition: transform .2s; }
.cat-head .chev.closed{ transform: rotate(-90deg); }
.cat-body{
  display:flex; flex-direction:column; gap:7px; padding:4px 2px 2px; border-radius: var(--radius-md);
  transition: background .15s;
}
.cat-body.drag-over{ background: var(--accent-soft); outline: 2px dashed var(--accent); outline-offset:4px; }
.subcat-label{ font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; margin: 10px 0 4px 2px; opacity:.7; }

.task-row{
  display:flex; align-items:flex-start; gap:10px; padding:11px 12px; border-radius: var(--radius-sm);
  background: var(--bg-elevated); border:1px solid var(--row-divider); cursor:pointer;
  transition: box-shadow .15s, transform .1s, opacity .15s, border-color .15s;
}
.task-row:hover{ box-shadow: var(--card-shadow-hover); border-color: var(--accent); }
.task-row.dragging{ opacity:.35; }
.task-row .grip, .acomp-row .grip{ color:var(--text-faint); cursor:grab; padding-top:2px; font-size:13px; flex-shrink:0; }
.move-btns{ display:flex; flex-direction:column; gap:0; }
.move-btns .move-btn{ width:22px; height:17px; }
.task-row .chk{
  width:19px;height:19px; border-radius:50%; border:2px solid var(--border-strong); flex-shrink:0; margin-top:1px;
  cursor:pointer; transition: all .15s; display:flex; align-items:center; justify-content:center; font-size:11px; color:#fff;
}
.task-row .chk:hover{ border-color: var(--accent); }
.task-row .chk.resolved{ background: var(--success); border-color: var(--success); }
.task-row .body{ flex:1; min-width:0; }
.task-row .ttl{ font-size:14px; font-weight:700; line-height:1.35; word-break:break-word; }
.task-row.done .ttl{ text-decoration: line-through; opacity:.42; }
.task-row .meta{ display:flex; align-items:center; gap:6px; margin-top:4px; flex-wrap:wrap; }
.task-row .note-prev{ font-size:12px; color:var(--text-secondary); margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tag{
  font-size:10.5px; font-weight:800; padding:2px 8px; border-radius:20px; letter-spacing:.02em;
}
.tag.resp{ background: var(--bg-sunken); color:var(--text-secondary); }
.tag.late{ background: var(--danger-soft); color: var(--danger); }
.tag.sub-novo{ background:#C0392B22; color:#C0392B; }
.tag.sub-acomp{ background:#3A3A3A22; color: var(--text); }
.tag.sub-aguard{ background:#E08E0B22; color:#E08E0B; }
.star-btn{ background:none; border:none; cursor:pointer; font-size:15px; color: var(--text-faint); padding:2px; flex-shrink:0; transition: transform .15s, color .15s; }
.star-btn.on{ color:#F5B301; }
.star-btn:hover{ transform: scale(1.15); }
.row-actions{ display:flex; align-items:center; gap:4px; flex-shrink:0; }
.row-actions.row-actions-hover{
  gap:6px; opacity:0; pointer-events:none; transition: opacity .15s;
}
.task-row:hover .row-actions-hover,
.task-row:focus-within .row-actions-hover,
.row-actions-hover:focus-within{ opacity:1; pointer-events:auto; }
@media (hover: none){
  /* em telas sem mouse (celular/tablet), mantém sempre visível para não ficar inacessível */
  .row-actions.row-actions-hover{ opacity:1; pointer-events:auto; }
}
.icon-action{
  width:26px; height:26px; border-radius:50%; border:none; background:transparent; cursor:pointer;
  display:flex; align-items:center; justify-content:center; font-size:13.5px; color:var(--text-secondary);
  padding:0; flex-shrink:0; transition: background .15s, color .15s;
}
.icon-action:hover{ background: var(--bg-sunken); color: var(--accent); }
.icon-action.has-note{ color: var(--accent); }
.icon-action.note-btn{ color: var(--accent); opacity:.6; }
.icon-action.note-btn.has-note{ opacity:1; }
.icon-action.note-btn:hover{ opacity:1; }
.icon-action.dot-resolve{
  width:13px; height:13px; border-radius:50%; border:2px solid var(--success); background:transparent;
}
.icon-action.dot-resolve:hover{ background: var(--success-soft); }
.icon-action.dot-resolve.resolved{ background: var(--success); border-color: var(--success); }

/* Ícones maiores nas ações da linha: Afazeres (row-actions) */
.task-row .row-actions .icon-action{
  width:36px; height:36px; font-size:19px;
}
.task-row .row-actions .icon-action.dot-resolve{ width:17px; height:17px; }
.task-row .row-actions .star-btn{ font-size:20px; }

/* Ícones maiores em Acompanhamentos, sem alargar a linha: área do botão quase igual à original */
.acomp-row .row-actions{ gap:1px; }
.acomp-row .row-actions .icon-action{
  width:30px; height:30px; font-size:16px;
}
.mini-btn{
  border:1px solid var(--border); background: var(--bg-elevated); color:var(--text-secondary); border-radius:7px;
  font-size:10.5px; font-weight:800; padding:5px 8px; cursor:pointer; white-space:nowrap; transition: all .15s;
}
.mini-btn:hover{ border-color: var(--accent); color: var(--accent); }
.mini-btn.primary{ background: var(--accent); color:#fff; border-color: var(--accent); }
.mini-btn.primary:hover{ opacity:.9; }
.aguard-alarm{ font-size:12px; color:var(--text-faint); cursor:pointer; }
.aguard-alarm.late{ color: var(--danger); font-weight:800; }
.task-row.aguard-late{ border-color: var(--danger); box-shadow: 0 0 0 3px var(--danger-soft); }
.alarm-badge-wrap{ position:relative; flex-shrink:0; }
.alarm-btn{ color: var(--text-faint); }
.alarm-btn.set{ color: var(--accent); }
.alarm-btn.late{ color:#fff; background: var(--danger); }
.alarm-btn.late:hover{ background: var(--danger); color:#fff; opacity:.9; }
.alarm-popover{
  position:absolute; right:0; top:calc(100% + 6px); z-index:40; width:220px; padding:12px;
  background: var(--bg-elevated); border:1px solid var(--border); border-radius: var(--radius-md);
  box-shadow: 0 14px 32px rgba(0,0,0,.2);
}
.alarm-popover input[type="date"]{ flex:1.3; min-width:128px; font-size:12.5px; padding:7px 6px; }
.alarm-popover input[type="time"]{ flex:1; min-width:84px; font-size:12.5px; padding:7px 6px; }
.alarm-popover{ width:250px; }

.okate-badge-wrap{ position:relative; flex-shrink:0; }
.okate-btn{ color: var(--text-faint); }
.okate-btn.set{ color: var(--accent); background: var(--accent-soft); }
.okate-popover{
  position:absolute; right:0; top:calc(100% + 6px); z-index:40; width:262px; padding:12px;
  background: var(--bg-elevated); border:1px solid var(--border); border-radius: var(--radius-md);
  box-shadow: 0 14px 32px rgba(0,0,0,.2);
}
.okate-popover input[type="date"]{ flex:1.3; min-width:128px; font-size:12.5px; padding:7px 6px; }
.okate-popover input[type="time"]{ flex:1; min-width:84px; font-size:12.5px; padding:7px 6px; }
.okate-popover .row-inline{ gap:6px; }

.link-badge-wrap{ position:relative; flex-shrink:0; }
.link-btn{ color: var(--text-faint); }
.link-btn.set{ color:#fff; background: var(--accent); }
.icon-action.link-btn.set:hover{ background: var(--accent); color:#fff; opacity:.86; }
.link-popover{
  position:absolute; right:0; top:calc(100% + 6px); z-index:40; width:260px; padding:12px;
  background: var(--bg-elevated); border:1px solid var(--border); border-radius: var(--radius-md);
  box-shadow: 0 14px 32px rgba(0,0,0,.2);
}
.link-popover input[type="text"]{ width:100%; font-size:12.5px; padding:7px 9px; }

.fbdate-badge-wrap{ position:relative; flex-shrink:0; }
.fbdate-btn{ color: var(--text-faint); width:26px; height:26px; }
.fbdate-popover{
  position:absolute; right:0; top:calc(100% + 6px); z-index:40; width:230px; padding:12px;
  background: var(--bg-elevated); border:1px solid var(--border); border-radius: var(--radius-md);
  box-shadow: 0 14px 32px rgba(0,0,0,.2); text-align:left;
}
.fbdate-popover input[type="date"]{ flex:1; min-width:0; font-size:12.5px; padding:7px 8px; }
.fbdate-hist-row{ display:flex; align-items:center; justify-content:space-between; gap:6px; padding:3px 0; font-size:12px; color:var(--text-faint); }
.fbdate-hist-row .icon-action{ width:20px; height:20px; opacity:.6; }
.fbdate-hist-row .icon-action:hover{ opacity:1; color:var(--danger); }
.last-fb-row.overdue .fbdate-btn, .last-fb-row.overdue .okate-btn{ color: var(--warning); }

.returned-flash{ animation: returnedFlash 1.8s ease; }
@keyframes returnedFlash{ 0%{ background: var(--accent-soft);} 100%{ background: var(--bg-elevated);} }

/* ---------------------------------------------------------------
   Kanban
--------------------------------------------------------------- */
.kanban-wrap{ margin-top:10px; }
.kanban-board{
  display:grid; grid-template-columns: repeat(6, minmax(0,1fr)); gap:10px;
}
@media (max-width: 1180px){ .kanban-board{ grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (max-width: 720px){ .kanban-board{ grid-template-columns: repeat(2, minmax(0,1fr)); } }
.kanban-col{
  background: var(--bg-sunken); border-radius: var(--radius-md); padding:10px; min-height:120px;
  display:flex; flex-direction:column; gap:8px; border:1px solid var(--border); transition: background .15s;
}
.kanban-col.drag-over{ background: var(--accent-soft); outline:2px dashed var(--accent); outline-offset:-2px; }
.kanban-col-head{ display:flex; align-items:center; gap:6px; padding:2px 2px 4px; }
.kanban-col-head .dot{ width:8px;height:8px;border-radius:50%; }
.kanban-col-head .dot-ok{ display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.kanban-col-head h4{ font-family:'Nunito',sans-serif; font-size:13px; font-weight:800; letter-spacing:.02em; }
.kanban-col-head .cnt{ margin-left:auto; font-size:10.5px; font-weight:800; color:var(--text-faint); }
.kanban-card{
  background: var(--bg-elevated); border:1px solid var(--border); border-radius:10px; padding:9px 10px;
  font-size:12.5px; font-weight:700; cursor:grab; box-shadow: var(--card-shadow); line-height:1.35;
  transition: box-shadow .15s, opacity .15s;
  overflow-wrap: anywhere; word-break: break-word; min-width:0;
}
.kanban-card:hover{ box-shadow: var(--card-shadow-hover); }
.kanban-card.dragging{ opacity:.35; }
.kanban-card .kmeta{ display:flex; gap:4px; margin-top:5px; flex-wrap:wrap; }

/* ---------------------------------------------------------------
   Modal
--------------------------------------------------------------- */
.modal-overlay{
  position:fixed; inset:0; background: rgba(10,5,15,.45); backdrop-filter: blur(3px);
  display:flex; align-items:center; justify-content:center; z-index:100; animation: fadeIn .18s ease; padding:20px;
}
.modal{
  background: var(--bg-elevated); border-radius: var(--radius-lg); width:560px; max-width:100%;
  max-height:88vh; overflow-y:auto; box-shadow: 0 20px 60px rgba(0,0,0,.3); animation: popIn .2s cubic-bezier(.2,.8,.2,1);
  border:1px solid var(--border);
}
.modal.wide{ width:760px; }
.modal-head{ display:flex; align-items:center; gap:10px; padding:18px 20px; border-bottom:1px solid var(--border); position:sticky; top:0; background:var(--bg-elevated); z-index:2;}
.modal-head input.title-input{
  flex:1; font-size:17px; font-weight:800; color:var(--text); outline:none;
  border:1.5px solid var(--border-strong); background:var(--bg-sunken); border-radius:var(--radius-sm);
  padding:7px 11px; transition: border-color .15s, background .15s;
}
.modal-head input.title-input:hover{ border-color: var(--text-faint); }
.modal-head input.title-input:focus{ border-color: var(--accent); background: var(--bg-elevated); }
.save-indicator{ font-size:11px; font-weight:700; color: var(--text-faint); white-space:nowrap; display:flex; align-items:center; gap:5px; }
.save-indicator.saved{ color: var(--success); }
.save-indicator.error{ color: var(--danger); }
.close-x{ background:none; border:none; font-size:18px; color:var(--text-faint); cursor:pointer; padding:4px; }
.close-x:hover{ color:var(--text); }
.modal-body{ padding:18px 20px; display:flex; flex-direction:column; gap:16px; }
.field-label{ font-size:11.5px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; color:var(--text-secondary); margin-bottom:6px; display:block; }
.field textarea, .field input[type=text], .field input[type=date], .field input[type=time], .field select{
  width:100%; border:1.5px solid var(--border); background: var(--bg-sunken); border-radius: var(--radius-sm);
  padding:10px 12px; font-size:13.5px; color:var(--text); outline:none; transition:border-color .15s, box-shadow .15s;
  font-family:'Nunito',sans-serif;
}
.field textarea{ resize:vertical; min-height:80px; line-height:1.5; }
.field input:focus, .field textarea:focus, .field select:focus{ border-color: var(--accent); box-shadow: 0 0 0 3px rgba(var(--accent-rgb),.12); }

.rich-field{ width:100%; }
.rich-toolbar{ display:flex; flex-wrap:wrap; align-items:center; gap:4px; margin-bottom:6px; }
.rt-btn{
  width:30px; height:28px; border-radius:7px; border:1.5px solid var(--border); background:var(--bg-sunken);
  color:var(--text); font-size:13.5px; cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition: all .12s; padding:0; font-family:'Nunito',sans-serif;
}
.rt-btn:hover{ border-color: var(--accent); color: var(--accent); }
.rt-btn b, .rt-btn i{ font-family:'Nunito',sans-serif; }
.rt-sep{ width:1px; height:20px; background:var(--border); margin:0 2px; }
.rt-size{ width:38px; gap:1px; }
.rt-size span{ font-weight:800; line-height:1; }
.rt-size .rt-sign{ font-size:12px !important; margin-left:1px; }
.rt-swatch{
  width:20px; height:20px; border-radius:50%; border:2px solid var(--border); cursor:pointer; padding:0;
  display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:800; color:var(--text-faint);
  transition: transform .1s, border-color .12s; line-height:1;
}
.rt-swatch:hover{ transform:scale(1.15); border-color:var(--text); }
.rt-swatch.none{ background:var(--bg-sunken); }
.rich-editor span[style*="background-color"]{ color:#1d1d1d; border-radius:2px; }
.rich-editor span[style*="background-color: transparent"], .rich-editor span[style*="background-color:transparent"], .rich-editor span[style*="rgba(0, 0, 0, 0)"], .rich-editor span[style*=", 0)"]{ color:inherit; border-radius:0; }
.rich-editor input[type="checkbox"]{ width:16px; height:16px; vertical-align:-3px; margin:0 4px 0 0; accent-color: var(--accent); cursor:pointer; }
.rich-editor{
  width:100%; border:1.5px solid var(--border); background: var(--bg-sunken); border-radius: var(--radius-sm);
  padding:10px 12px; font-size:13.5px; color:var(--text); outline:none; transition:border-color .15s, box-shadow .15s;
  font-family:'Nunito',sans-serif; min-height:80px; line-height:1.5; overflow-y:auto;
}
.rich-editor:focus{ border-color: var(--accent); box-shadow: 0 0 0 3px rgba(var(--accent-rgb),.12); }
.rich-editor:empty:before{ content: attr(data-placeholder); color: var(--text-faint); pointer-events:none; }
.rich-editor h3{ font-size:16px; font-weight:800; margin:4px 0; color:var(--text); }
.rich-editor b, .rich-editor strong{ font-weight:800; }
.field-row{ display:flex; gap:12px; }
.field-row > *{ flex:1; }
.chip-row{ display:flex; gap:7px; flex-wrap:wrap; }
.chip{
  padding:7px 13px; border-radius:20px; font-size:12.5px; font-weight:700; cursor:pointer;
  border:1.5px solid var(--border); background: var(--bg-sunken); color:var(--text-secondary); transition: all .15s;
  text-transform:uppercase; letter-spacing:.02em;
}
.chip:hover{ border-color: var(--accent); }
.chip.active{ background: var(--accent); border-color: var(--accent); color:#fff; }
.modal-foot{ display:flex; align-items:center; gap:8px; padding:14px 20px; border-top:1px solid var(--border); flex-wrap:wrap; }
.status-row{ display:flex; gap:8px; flex-wrap:wrap; }
.btn{
  border:none; border-radius: var(--radius-sm); padding:9px 16px; font-weight:800; font-size:12.5px; cursor:pointer;
  transition: all .15s; display:inline-flex; align-items:center; gap:6px;
}
.btn.primary{ background: var(--accent); color:#fff; }
.btn.primary:hover{ opacity:.92; transform: translateY(-1px); }
.btn.ghost{ background: var(--bg-sunken); color:var(--text-secondary); }
.btn.ghost:hover{ background: var(--border); }
.btn.danger{ background: var(--danger-soft); color: var(--danger); }
.btn.danger:hover{ opacity:.85; }
.btn.success{ background: var(--success-soft); color: var(--success); }
.btn:disabled{ opacity:.5; cursor:not-allowed; }

/* ---------------------------------------------------------------
   Toasts / confetti
--------------------------------------------------------------- */
.toast-stack{ position:fixed; bottom:22px; left:50%; transform:translateX(-50%); z-index:300; display:flex; flex-direction:column; gap:8px; align-items:center; }
.toast{
  background: var(--bg-elevated); color:var(--text); border:1px solid var(--border); box-shadow: var(--card-shadow-hover);
  padding:9px 18px; border-radius:30px; font-size:12.5px; font-weight:700; display:flex; align-items:center; gap:8px;
  animation: toastIn .25s cubic-bezier(.2,.8,.2,1);
}
@keyframes toastIn{ from{ opacity:0; transform: translateY(8px) scale(.96);} to{opacity:1; transform:translateY(0) scale(1);} }

.confetti-piece{
  position:fixed; z-index:500; pointer-events:none; border-radius:2px; animation: confettiFly .8s ease-out forwards;
}
@keyframes confettiFly{
  0%{ transform: translate(0,0) rotate(0deg) scale(1); opacity:1; }
  100%{ transform: translate(var(--tx), var(--ty)) rotate(var(--rot)) scale(.4); opacity:0; }
}

/* ---------------------------------------------------------------
   Botão flutuante adicionar
--------------------------------------------------------------- */
.fab{
  position:fixed; left:22px; bottom:88px; width:42px; height:42px; border-radius:50%;
  background:#F5B301; color:#2a1c00; border:none; font-size:20px; font-weight:800; cursor:pointer;
  box-shadow: 0 8px 20px rgba(245,179,1,.4); display:flex; align-items:center; justify-content:center;
  z-index:80; transition: transform .18s ease, box-shadow .18s ease;
}
.fab:hover{ transform: scale(1.08) rotate(90deg); box-shadow: 0 10px 24px rgba(245,179,1,.5); }
.quick-add-box{
  position:fixed; left:22px; bottom:136px; width:300px; background: var(--bg-elevated); border:1px solid var(--border);
  border-radius: var(--radius-md); box-shadow: 0 16px 40px rgba(0,0,0,.22); padding:14px; z-index:81; animation: riseIn .18s ease;
}
.quick-add-box input{
  width:100%; border:1.5px solid var(--border-strong); background: var(--bg-sunken); border-radius: var(--radius-sm);
  padding:10px 12px; font-size:14px; outline:none; color:var(--text);
}
.quick-add-box input:focus{ border-color: var(--accent); }
.quick-add-hint{ font-size:11px; color:var(--text-faint); margin-top:8px; display:flex; justify-content:space-between; }

/* ---------------------------------------------------------------
   Busca global
--------------------------------------------------------------- */
.search-overlay{ position:fixed; inset:0; background: rgba(10,5,15,.45); backdrop-filter: blur(3px); z-index:200; display:flex; align-items:flex-start; justify-content:center; padding-top:10vh; animation: fadeIn .15s ease; }
.search-modal{ width:600px; max-width:92vw; background:var(--bg-elevated); border-radius: var(--radius-lg); box-shadow: 0 20px 60px rgba(0,0,0,.35); overflow:hidden; animation: popIn .18s ease; border:1px solid var(--border); }
.search-input-row{ display:flex; align-items:center; gap:10px; padding:16px 18px; border-bottom:1px solid var(--border); }
.search-input-row input{ flex:1; border:none; outline:none; background:none; font-size:16px; color:var(--text); }
.search-results{ max-height:60vh; overflow-y:auto; padding:8px; }
.search-empty{ padding:30px; text-align:center; color:var(--text-faint); font-size:13px; }
.search-result{ display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:10px; cursor:pointer; }
.search-result:hover{ background: var(--bg-sunken); }
.search-result .badge{ font-size:10px; font-weight:800; text-transform:uppercase; background: var(--accent-soft); color: var(--accent-soft-text); padding:2px 8px; border-radius:20px; flex-shrink:0; }
.search-result .txt{ flex:1; min-width:0; }
.search-result .txt .t1{ font-weight:700; font-size:13.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.search-result .txt .t2{ font-size:11.5px; color:var(--text-faint); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* ---------------------------------------------------------------
   Dashboard
--------------------------------------------------------------- */
.dash-grid{ display:grid; grid-template-columns: repeat(auto-fit, minmax(260px,1fr)); gap:14px; margin-bottom:22px; }
.dash-card{ padding:16px; display:flex; flex-direction:column; gap:10px; }
.dash-card-head{ display:flex; align-items:center; gap:9px; }
.dash-card-head .ic{ width:32px;height:32px;border-radius:9px; display:flex;align-items:center;justify-content:center; font-size:15px; }
.dash-card-head h4{ font-size:13px; font-weight:800; }
.dash-card-head .cnt{ margin-left:auto; font-size:15px; font-weight:900; }
.dash-list{ display:flex; flex-direction:column; gap:6px; max-height:150px; overflow-y:auto; }
.dash-list-item{ font-size:12.5px; font-weight:600; padding:6px 9px; background:var(--bg-sunken); border-radius:8px; cursor:pointer; }
.dash-list-item:hover{ background: var(--border); }
.dash-empty-state{ display:flex; flex-direction:column; align-items:center; justify-content:center; padding:60px 20px; text-align:center; gap:10px; }
.dash-empty-state .big-ic{ font-size:52px; }
.dash-empty-state h3{ font-size:19px; }
.dash-empty-state p{ color:var(--text-secondary); font-size:13.5px; margin:0; }

.prod-chart{ padding:18px; }
.prod-bar-track{ width:100%; height:22px; background:var(--bg-sunken); border-radius:20px; overflow:hidden; border:1px solid var(--border); margin-top:10px; }
.prod-bar-fill{ height:100%; background: linear-gradient(90deg, var(--accent), #c260ea); border-radius:20px; transition: width .6s cubic-bezier(.2,.8,.2,1); display:flex; align-items:center; justify-content:flex-end; }
.prod-bar-fill span{ color:#fff; font-size:11px; font-weight:800; padding-right:9px; }
.prod-legend{ display:flex; gap:16px; margin-top:10px; font-size:11.5px; color:var(--text-faint); }

/* ---------------------------------------------------------------
   Checklist
--------------------------------------------------------------- */
.check-section-head{ display:flex; align-items:center; gap:8px; margin: 18px 0 8px; }
.check-section-head h3{ font-size:13.5px; font-weight:800; text-transform:uppercase; letter-spacing:.03em; }
.check-section-head.all-done h3{ text-decoration: line-through; opacity:.4; }
.check-row{
  display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius: var(--radius-sm);
  background: var(--bg-elevated); border:1px solid var(--border); cursor:pointer; margin-bottom:7px; transition: box-shadow .15s;
}
.check-row:hover{ box-shadow: var(--card-shadow-hover); }
.check-row .chk{ width:19px;height:19px;border-radius:6px; border:2px solid var(--border-strong); display:flex; align-items:center; justify-content:center; font-size:11px; color:#fff; cursor:pointer; flex-shrink:0; }
.check-row .chk.done{ background: var(--accent); border-color: var(--accent); }
.check-row .body{ flex:1; min-width:0; }
.check-row .ttl{ font-size:13.5px; font-weight:700; }
.check-row.done .ttl{ text-decoration: line-through; opacity:.42; }
.check-row .note-prev{ font-size:12px; color:var(--text-secondary); }
.check-done-link{ font-size:12px; font-weight:700; color: var(--accent); cursor:pointer; margin: 6px 0 16px; display:inline-block; }

/* ---------------------------------------------------------------
   Acompanhamentos
--------------------------------------------------------------- */
.collapsible-head{ display:flex; align-items:center; gap:9px; padding:12px 14px; cursor:pointer; }
.collapsible-head h3{ font-size:14px; }
.collapsible-head .chev{ margin-left:auto; transition: transform .2s; }
.collapsible-head .chev.open{ transform: rotate(180deg); }
.acomp-row{ display:flex; align-items:center; gap:10px; padding:11px 12px; border-radius: var(--radius-sm); background: var(--bg-elevated); border:1px solid var(--row-divider); margin-bottom:7px; cursor:pointer; }
.acomp-row.late{ border-color: var(--danger); background: var(--danger-soft); }
.acomp-row .period-tag{ font-size:10px; font-weight:800; padding:2px 7px; border-radius:20px; text-transform:uppercase; }
.period-tag.manha{ background:#FCEEDA; color:#E08E0B; }
.period-tag.tarde{ background:#E2E9FB; color:#3355C4; }
:root[data-theme="dark"] .period-tag.manha{ background:#3a2c14; }
:root[data-theme="dark"] .period-tag.tarde{ background:#182346; }
.freq-tag{ font-size:10.5px; color:var(--text-faint); font-weight:700; }

/* ---------------------------------------------------------------
   Calendário
--------------------------------------------------------------- */
.cal-wrap{ display:grid; grid-template-columns: 1fr 1fr; gap:20px; align-items:start; }
@media (max-width:920px){ .cal-wrap{ grid-template-columns: 1fr; } }
.cal-grid-card{ padding:16px; }
.cal-head-row{ display:flex; align-items:center; margin-bottom:12px; }
.cal-head-row h3{ font-size:15px; text-transform:capitalize; }
.cal-nav-btn{ background:var(--bg-sunken); border:1px solid var(--border); border-radius:8px; width:30px;height:30px; cursor:pointer; color:var(--text-secondary); }
.cal-weekdays{ display:grid; grid-template-columns: repeat(7,1fr); text-align:center; font-size:10.5px; font-weight:800; color:var(--text-faint); margin-bottom:4px; }
.cal-days{ display:grid; grid-template-columns: repeat(7,1fr); gap:4px; }
.cal-day{
  aspect-ratio:1; display:flex; flex-direction:column; align-items:center; justify-content:center; border-radius:10px;
  font-size:12.5px; font-weight:700; cursor:pointer; position:relative; color:var(--text); transition: background .15s;
}
.cal-day:hover{ background: var(--bg-sunken); }
.cal-day.other-month{ opacity:.3; }
.cal-day.today{ background: var(--accent); color:#fff; }
.cal-day .ev-dot{ width:5px;height:5px;border-radius:50%; background: var(--accent); margin-top:2px; }
.cal-day.today .ev-dot{ background:#fff; animation: blinkSlow 2s ease-in-out infinite; }
.cal-events-card{ padding:14px; max-height:520px; overflow-y:auto; }
.ev-item{ display:flex; gap:10px; padding:10px; border-radius: var(--radius-sm); border:1px solid var(--border); margin-bottom:8px; }
.ev-item.past{ opacity:.42; }
.ev-item .ev-date-badge{ background: var(--accent-soft); color: var(--accent-soft-text); border-radius:8px; padding:6px 8px; text-align:center; font-size:11px; font-weight:800; min-width:42px; flex-shrink:0; }
.ev-item .ev-date-badge .d{ font-size:15px; display:block; }
.ev-item .body{ flex:1; min-width:0; }
.ev-item .ttl{ font-weight:700; font-size:13.5px; }
.ev-item.done .ttl{ text-decoration:line-through; opacity:.5; }
.ev-item .time{ font-size:11.5px; color:var(--text-faint); }

/* ---------------------------------------------------------------
   Feedbacks
--------------------------------------------------------------- */
.team-grid{ display:grid; grid-template-columns: repeat(auto-fill, minmax(230px,1fr)); gap:14px; }
.team-card{ padding:16px; display:flex; flex-direction:column; gap:8px; cursor:pointer; }
.team-card .avatar{ width:42px;height:42px;border-radius:12px; background: linear-gradient(135deg, var(--accent), #b34de0); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:16px; }
.team-card h4{ font-size:14.5px; }
.team-card .sub{ font-size:11.5px; color:var(--text-faint); }
.hidden-blur{ filter: blur(5px); user-select:none; transition: filter .15s; cursor:pointer; }
.hidden-blur:hover{ filter: blur(3px); }
.reveal-hint{ font-size:11px; color:var(--accent); font-weight:700; cursor:pointer; }
.reveal-box{ padding:22px; background: var(--bg-sunken); border-radius: var(--radius-md); text-align:center; }
.reveal-box .icon-btn{ margin:0 auto; }
.last-fb-row{ display:flex; justify-content:space-between; align-items:center; padding:9px 12px; border-radius:8px; font-size:13px; }
.last-fb-row+.last-fb-row{ margin-top:4px; }
.last-fb-row .last-fb-name{ font-weight:700; }
.last-fb-row .last-fb-date{ font-size:12px; color:var(--text-faint); display:flex; align-items:center; gap:8px; }
.last-fb-row.overdue{ background: var(--warning-soft); }
.last-fb-row.overdue .last-fb-name{ color: var(--warning); }
.last-fb-row.overdue .last-fb-date{ color: var(--warning); font-weight:700; }
.last-fb-badge{ background: var(--warning); color:#fff; font-size:10px; font-weight:800; padding:2px 7px; border-radius:20px; text-transform:uppercase; }
.fb-item{ padding:10px 12px; border-radius:var(--radius-sm); border:1px solid var(--border); margin-bottom:7px; }
.fb-item .fb-type{ font-size:10px; font-weight:800; text-transform:uppercase; padding:2px 8px; border-radius:20px; }
.fb-type.reconhecimento{ background: var(--success-soft); color:var(--success); }
.fb-type.melhorar{ background: var(--warning-soft); color:var(--warning); }
.fb-type.passado{ background: var(--gray-soft); color:var(--text-secondary); }

/* ---------------------------------------------------------------
   Banco de dados
--------------------------------------------------------------- */
.folder-block{ margin-bottom:12px; }
.folder-head{ display:flex; align-items:center; gap:9px; padding:11px 14px; border-radius: var(--radius-sm); background: var(--bg-elevated); border:1px solid var(--border); cursor:pointer; }
.folder-head h4{ font-size:13.5px; }
.folder-head .chev{ margin-left:auto; transition: transform .2s; }
.folder-head .chev.open{ transform: rotate(180deg); }
.folder-body{ padding:10px 8px 4px 24px; display:flex; flex-direction:column; gap:8px; }
.note-card{ padding:12px 14px; }
.note-card h5{ font-size:13.5px; margin-bottom:4px; }
.note-card p{ font-size:12.5px; color:var(--text-secondary); margin:0; white-space:pre-wrap; line-height:1.5; }
.note-card .note-date{ font-size:10.5px; color:var(--text-faint); margin-top:6px; }
.deleg-row{ display:flex; align-items:center; gap:10px; padding:10px 12px; border:1px solid var(--border); border-radius: var(--radius-sm); margin-bottom:7px; }
.deleg-row .who{ font-size:11px; font-weight:800; background: var(--accent-soft); color: var(--accent-soft-text); padding:2px 9px; border-radius:20px; }

/* ---------------------------------------------------------------
   Funções
--------------------------------------------------------------- */
.func-grid{ display:grid; grid-template-columns: repeat(auto-fit, minmax(320px,1fr)); gap:16px; }
.func-card{ padding:18px; }
.func-card h4{ font-size:14px; margin-bottom:12px; display:flex; align-items:center; gap:8px; }
.func-result{ background: var(--bg-sunken); border:1px solid var(--border); border-radius: var(--radius-sm); padding:12px; font-family:'Courier New',monospace; font-size:14px; font-weight:700; letter-spacing:.03em; word-break:break-all; margin-top:8px; min-height:20px; }
.func-result-text{ font-family:'Nunito',sans-serif; font-weight:600; letter-spacing:normal; word-break:break-word; white-space:pre-wrap; text-transform:none; max-height:180px; overflow-y:auto; }
.func-stats{ display:grid; grid-template-columns: repeat(4,1fr); gap:8px; margin-top:10px; }
.func-stat{ background: var(--bg-sunken); border-radius: var(--radius-sm); padding:10px; text-align:center; }
.func-stat .n{ font-size:18px; font-weight:900; color: var(--accent); }
.func-stat .l{ font-size:10px; color:var(--text-faint); font-weight:700; text-transform:uppercase; }

/* ---------------------------------------------------------------
   Placas
--------------------------------------------------------------- */
.placas-grid{ display:grid; grid-template-columns: repeat(auto-fill, minmax(240px,1fr)); gap:16px; }
.placa-card{
  position:relative; border-radius: var(--radius-md); overflow:hidden; cursor:pointer; background:#000;
  border:1px solid var(--border); box-shadow: var(--card-shadow); transition: transform .15s, box-shadow .15s;
}
.placa-card:hover{ transform: translateY(-2px); box-shadow: var(--card-shadow-hover); }
.placa-card img{ width:100%; aspect-ratio: 16/9; object-fit:cover; display:block; }
.placa-card-foot{ display:flex; align-items:center; justify-content:space-between; gap:8px; padding:9px 11px; background: var(--bg-elevated); }
.placa-card-nome{ font-size:12.5px; font-weight:700; color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.placa-card-foot .icon-action{ color: var(--text-faint); flex-shrink:0; }
.placa-card-foot .icon-action:hover{ color: var(--danger); }
.placa-card-hover{
  position:absolute; inset:0; bottom:38px; display:flex; align-items:center; justify-content:center;
  background: rgba(0,0,0,0); color:#fff; opacity:0; transition: all .15s; pointer-events:none;
}
.placa-card:hover .placa-card-hover{ background: rgba(0,0,0,.35); opacity:1; }
.placa-fullscreen{
  position:fixed; inset:0; z-index:500; background:#000; display:flex; align-items:center; justify-content:center;
  cursor:zoom-out; animation: riseIn .15s ease;
}
.placa-fullscreen img{ max-width:100%; max-height:100%; object-fit:contain; }
.placa-close-btn{
  position:fixed; top:18px; right:18px; width:36px; height:36px; border-radius:50%; border:none;
  background: rgba(255,255,255,.14); color:#fff; font-size:16px; cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition: background .15s;
}
.placa-close-btn:hover{ background: rgba(255,255,255,.28); }

/* ---------------------------------------------------------------
   Fluxogramas
--------------------------------------------------------------- */
.flow-toolbar{ display:flex; align-items:center; gap:8px; padding:10px 12px; background:var(--bg-sunken); border-bottom:1px solid var(--border); flex-wrap:wrap; }
.flow-canvas-wrap{ position:relative; width:100%; height:calc(100vh - 230px); min-height:420px; overflow:auto; background:
   radial-gradient(circle, var(--border) 1px, transparent 1px) ; background-size:18px 18px; background-color: var(--bg-sunken); border-radius: var(--radius-md); border:1px solid var(--border); }
.flow-node{ position:absolute; min-width:120px; padding:12px 14px; border-radius:12px; background: var(--bg-elevated); border:2px solid var(--border-strong); box-shadow: var(--card-shadow); cursor:grab; font-size:13px; font-weight:700; text-align:center; user-select:none; }
.flow-node.selected{ border-color: var(--accent); box-shadow: 0 0 0 3px rgba(var(--accent-rgb),.18); }
.flow-node.decision{ border:none; background:none; box-shadow:none; padding:30px 34px; }
.flow-node.decision .decision-shape{ position:absolute; inset:0; background: var(--bg-elevated); border:2px solid var(--border-strong); clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%); z-index:0; }
.flow-node.decision.selected .decision-shape{ border-color: var(--accent); }
.flow-node.decision textarea{ position:relative; z-index:1; }
.flow-node.textonly{ border:none; box-shadow:none; background:transparent; }
.flow-node .resize-handle{ position:absolute; bottom:-6px; left:-6px; width:13px;height:13px;border-radius:3px; background: var(--bg-elevated); border:2px solid var(--border-strong); cursor:nwse-resize; z-index:2; }
.flow-node .connect-handle{ z-index:2; }
.flow-node .del-node{ z-index:2; }
.flow-node textarea{ width:100%; background:none; border:none; text-align:center; font-weight:700; font-size:13px; resize:none !important; outline:none; color:var(--text); font-family:'Nunito',sans-serif; overflow:hidden; }
.flow-node .del-node{ position:absolute; top:-8px; right:-8px; width:20px;height:20px;border-radius:50%; background: var(--danger); color:#fff; border:none; font-size:11px; cursor:pointer; display:none; align-items:center; justify-content:center; }
.flow-node:hover .del-node{ display:flex; }
.flow-node .connect-handle{ position:absolute; bottom:-7px; right:-7px; width:14px;height:14px;border-radius:50%; background: var(--accent); border:2px solid #fff; cursor:crosshair; }
.folder-tabs{ display:flex; gap:6px; flex-wrap:wrap; margin-bottom:12px; }
.flow-list-row{ display:flex; align-items:center; gap:10px; padding:11px 12px; border:1px solid var(--border); border-radius: var(--radius-sm); cursor:pointer; margin-bottom:7px; }
.flow-list-row:hover{ border-color: var(--accent); }

/* ---------------------------------------------------------------
   Empty states / helpers
--------------------------------------------------------------- */
.empty-hint{ font-size:12.5px; color:var(--text-faint); padding:14px; text-align:center; text-transform:uppercase; letter-spacing:.03em; font-weight:600; }
.favorite-filter-bar{ display:flex; align-items:center; gap:8px; margin-bottom:14px; }
.form-input-plain{ border:1.5px solid var(--border-strong); background:var(--bg-sunken); border-radius:var(--radius-sm); padding:9px 12px; font-size:13px; outline:none; color:var(--text); width:100%; }
.form-input-plain:focus{ border-color:var(--accent); }
.row-inline{ display:flex; gap:8px; align-items:center; }
.text-btn{ background:none; border:none; color:var(--accent); font-weight:700; font-size:12.5px; cursor:pointer; padding:6px 4px; }
.text-btn:hover{ text-decoration:underline; }
.small-add-row{ display:flex; gap:8px; margin-top:10px; }

.mobile-menu-btn{ display:none; }
.mobile-nav-backdrop{ display:none; }

@media (max-width: 900px){
  .mobile-menu-btn{ display:flex; flex-shrink:0; }
  .sidebar{ position:fixed; z-index:70; height:100%; top:0; left:0; box-shadow: 10px 0 30px rgba(0,0,0,.25); transition: transform .25s cubic-bezier(.2,.8,.2,1); width: var(--sidebar-w) !important; }
  .sidebar:not(.mobile-open){ transform: translateX(-100%); }
  .sidebar.mobile-open{ transform: translateX(0); }
  .mobile-nav-backdrop{ display:block; position:fixed; inset:0; background: rgba(10,5,15,.4); z-index:65; animation: fadeIn .15s ease; }
  .topbar{ padding:10px 14px; gap:8px; flex-wrap:wrap; }
  .topbar h2{ font-size:15px; }
  .topbar-search{ order:3; max-width:none; width:100%; }
  .today-banner{ max-width:160px; }
  .content-scroll{ padding:14px; }
  .kanban-board{ grid-template-columns: repeat(2,1fr); }
  .dash-grid{ grid-template-columns: 1fr; }
  .cal-wrap{ grid-template-columns: 1fr; }
  .modal, .modal.wide{ width:100%; }
  .fab{ left:16px; bottom:16px; }
  .quick-add-box{ left:16px; right:16px; width:auto; }
}

@media (max-width: 480px){
  .func-grid{ grid-template-columns: 1fr; }
  .team-grid{ grid-template-columns: 1fr; }
  .kanban-board{ grid-template-columns: 1fr; }
}

/* imagens anexadas na anotação */
.anexos-strip{ display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.anexo-thumb{ position:relative; width:64px; height:64px; border-radius:10px; overflow:hidden; border:1.5px solid var(--border); cursor:zoom-in; background:var(--bg-sunken); transition:border-color .12s, transform .12s; }
.anexo-thumb:hover{ border-color:var(--accent); transform:translateY(-1px); }
.anexo-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.anexo-del{ position:absolute; top:2px; right:2px; width:18px; height:18px; border-radius:50%; border:none; background:rgba(0,0,0,.6); color:#fff; font-size:10px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .12s; padding:0; }
.anexo-thumb:hover .anexo-del, .anexo-del:focus{ opacity:1; }
.anexo-del:hover{ background:var(--danger, #c0392b); }
.anexo-badge{ display:inline-flex; align-items:center; gap:4px; margin-top:3px; font-size:11.5px; font-weight:700; color:var(--accent); }
.img-viewer{ position:fixed; inset:0; z-index:600; background:rgba(0,0,0,.88); display:flex; align-items:center; justify-content:center; flex-direction:column; gap:10px; padding:28px; cursor:zoom-out; animation: fadeIn .15s ease; }
.img-viewer img{ max-width:94vw; max-height:84vh; object-fit:contain; border-radius:8px; box-shadow:0 10px 40px rgba(0,0,0,.5); cursor:default; background:#fff; }
.img-viewer-name{ color:#fff; opacity:.8; font-size:13px; font-weight:600; max-width:90vw; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

.rt-attach{ color:var(--accent); border-color:var(--accent); }
.rich-toolbar{ gap:3px; }

/* ===== Bloco de Notas ===== */
.np-card{ grid-column:1 / -1; padding:0; overflow:hidden; }
.np-card.np-away{ padding:18px; }
.np-card.np-away p{ font-size:13.5px; color:var(--text-secondary); margin:0 0 12px; }
.np-panel{ display:flex; flex-direction:column; min-height:0; background:var(--bg-elevated); color:var(--text); }
.np-docked{ height:430px; }
.np-float{ position:fixed; z-index:150; min-width:320px; min-height:200px; max-width:96vw; max-height:96vh; resize:both; overflow:hidden;
  border:1.5px solid var(--border-strong); border-radius:12px; box-shadow:0 12px 40px rgba(20,10,30,.28); background:var(--bg-elevated);
  opacity:var(--np-op,1); transition:opacity .15s; }
.np-float:hover, .np-float:focus-within{ opacity:1; }
.np-float.minimized{ resize:none; min-height:0; height:auto; width:300px !important; }
.np-float .np-panel{ height:100%; }
.np-fullscreen{ position:fixed; inset:0; z-index:400; background:var(--bg); display:flex; }
.np-fullscreen .np-panel{ flex:1; height:100%; }
.np-titlebar{ display:flex; align-items:center; justify-content:space-between; gap:8px; padding:7px 10px; background:var(--accent); color:#fff; user-select:none; }
.np-float .np-titlebar{ cursor:move; touch-action:none; }
.np-title{ display:flex; align-items:center; gap:7px; font-size:12.5px; font-weight:800; letter-spacing:.02em; }
.np-win-btns{ display:flex; gap:2px; }
.np-wbtn{ width:26px; height:24px; border:none; border-radius:6px; background:transparent; color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center; padding:0; }
.np-wbtn:hover{ background:rgba(255,255,255,.22); }
.np-tabs{ display:flex; align-items:flex-end; gap:2px; padding:6px 8px 0; background:var(--bg-sunken); border-bottom:1px solid var(--border); overflow-x:auto; flex:none; }
.np-tab{ display:flex; align-items:center; gap:6px; max-width:180px; padding:6px 8px 6px 12px; font-size:12.5px; font-weight:700; border:1px solid transparent; border-bottom:none; border-radius:8px 8px 0 0; color:var(--text-secondary); cursor:pointer; white-space:nowrap; }
.np-tab:hover{ background:rgba(var(--accent-rgb),.08); }
.np-tab.active{ background:var(--bg-elevated); border-color:var(--border); color:var(--accent); margin-bottom:-1px; }
.np-tab-name{ overflow:hidden; text-overflow:ellipsis; }
.np-tab-input{ width:110px; font:inherit; border:1px solid var(--accent); border-radius:5px; padding:1px 4px; background:var(--bg); color:var(--text); }
.np-tab-x{ width:16px; height:16px; border:none; border-radius:4px; background:transparent; color:inherit; cursor:pointer; display:flex; align-items:center; justify-content:center; padding:0; opacity:.55; }
.np-tab-x:hover{ opacity:1; background:rgba(0,0,0,.1); }
.np-tab-new{ width:26px; height:26px; margin:0 0 2px 4px; border:none; border-radius:6px; background:transparent; color:var(--accent); font-size:18px; font-weight:800; cursor:pointer; line-height:1; }
.np-tab-new:hover{ background:rgba(var(--accent-rgb),.12); }
.np-toolbar{ display:flex; flex-wrap:wrap; align-items:center; gap:4px; padding:6px 8px; border-bottom:1px solid var(--border); flex:none; }
.np-tbtn{ display:inline-flex; align-items:center; gap:5px; height:26px; padding:0 9px; border:1px solid var(--border); border-radius:7px; background:var(--bg-sunken); color:var(--text); font-size:12px; font-weight:700; cursor:pointer; font-family:inherit; }
.np-tbtn:hover{ border-color:var(--accent); color:var(--accent); }
.np-tbtn.sq{ width:28px; padding:0; justify-content:center; }
.np-tbtn.on{ background:rgba(var(--accent-rgb),.14); border-color:var(--accent); color:var(--accent); }
.np-tsep{ width:1px; height:18px; background:var(--border); margin:0 3px; }
.np-find{ display:flex; align-items:center; gap:5px; padding:6px 8px; background:var(--bg-sunken); border-bottom:1px solid var(--border); flex:none; }
.np-find-input{ flex:1; min-width:80px; height:26px; border:1.5px solid var(--border); border-radius:7px; padding:0 9px; background:var(--bg); color:var(--text); font-size:12.5px; outline:none; }
.np-find-input:focus{ border-color:var(--accent); }
.np-find-info{ font-size:12px; color:var(--text-secondary); min-width:70px; }
.np-text{ flex:1; min-height:0; width:100%; resize:none; border:none; outline:none; padding:12px 14px; background:var(--bg); color:var(--text); line-height:1.5; tab-size:4; overflow:auto; }
.np-text::placeholder{ color:var(--text-faint); }
.np-status{ display:flex; flex-wrap:wrap; gap:6px 18px; padding:5px 12px; font-size:11.5px; color:var(--text-secondary); background:var(--bg-sunken); border-top:1px solid var(--border); flex:none; }
.icon-btn.np-on{ color:var(--accent); background:rgba(var(--accent-rgb),.12); }

.np-tbtn:disabled{ opacity:.4; cursor:default; }
.np-tbtn:disabled:hover{ border-color:var(--border); color:var(--text); }

.added-at{ margin-top:3px; font-size:11px; font-weight:600; color:var(--text-faint); }
.task-added{ display:flex; align-items:center; flex-wrap:wrap; gap:5px; font-size:12px; color:var(--text-secondary); margin:-4px 0 12px; }
.task-added b{ font-weight:800; color:var(--text); }


/* ===== Resolvidas: filtros ===== */
.res-modal{ max-width:720px; width:100%; }
.res-filters{ display:flex; flex-direction:column; gap:10px; margin-bottom:12px; padding:10px 12px; background:var(--bg-sunken); border-radius:var(--radius-sm); }
.res-filter-label{ display:block; font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--text-secondary); margin-bottom:5px; }
.res-chips{ display:flex; flex-wrap:wrap; gap:6px; }
.res-dates{ display:flex; flex-wrap:wrap; gap:10px; margin-top:8px; }
.res-dates label{ font-size:12px; font-weight:700; color:var(--text-secondary); display:flex; align-items:center; gap:6px; }
.res-dates input{ width:auto; padding:5px 8px; }
.res-cat{ display:inline-block; margin-right:8px; padding:0 7px; border:1px solid; border-radius:10px; font-size:10.5px; font-weight:800; text-transform:uppercase; letter-spacing:.03em; }

/* ===== Relatório ===== */
.rel-wrap{ max-width:1000px; }
.rel-seg{ display:inline-flex; border:1.5px solid var(--border-strong); border-radius:9px; overflow:hidden; }
.rel-seg button{ border:none; background:var(--bg-sunken); color:var(--text-secondary); font:inherit; font-size:12.5px; font-weight:800; padding:7px 14px; cursor:pointer; }
.rel-seg button.on{ background:var(--accent); color:#fff; }
.rel-nav{ display:flex; align-items:center; gap:10px; margin:2px 0 14px; font-size:15px; }
.rel-nav .icon-action{ width:30px; height:30px; font-size:20px; line-height:1; }
.rel-nav .icon-action:disabled{ opacity:.35; cursor:default; }
.rel-kpis{ display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:12px; margin-bottom:14px; }
.rel-kpi{ background:var(--bg-elevated); border:1px solid var(--border); border-radius:var(--radius-md); padding:14px 16px; box-shadow:var(--card-shadow); }
.rel-kpi .n{ font-size:30px; font-weight:900; color:var(--accent); line-height:1.1; }
.rel-kpi .l{ font-size:12.5px; color:var(--text-secondary); font-weight:700; margin-top:3px; }
.rel-kpi .d{ font-size:11.5px; font-weight:700; margin-top:6px; color:var(--text-secondary); }
.rel-kpi .d.up{ color:var(--success); } .rel-kpi .d.down{ color:var(--danger); }
.rel-card{ padding:16px 18px; margin-bottom:14px; }
.rel-card h4{ font-size:13.5px; margin:0 0 12px; }
.rel-chart{ display:flex; gap:8px; }
.rel-y{ display:flex; flex-direction:column; justify-content:space-between; height:200px; font-size:11px; color:var(--text-faint); text-align:right; width:24px; padding-bottom:0; }
.rel-plot{ position:relative; flex:1; min-width:0; }
.rel-bars{ position:relative; display:flex; height:200px; z-index:2; }
.rel-grid{ position:absolute; left:0; right:0; border-top:1px solid var(--border); z-index:1; }
.rel-grid.g1{ top:0; } .rel-grid.g2{ top:100px; } .rel-grid.g3{ top:200px; border-top-color:var(--border-strong); }
.rel-avg{ position:absolute; left:0; right:0; border-top:1.5px dashed var(--text-faint); z-index:1; height:0; pointer-events:none; }
.rel-avg span{ position:absolute; right:0; top:-17px; font-size:10.5px; color:var(--text-secondary); background:var(--bg-elevated); padding:0 4px; border-radius:4px; }
.rel-col{ position:relative; height:100%; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; cursor:pointer; }
.rel-bar{ width:min(34px, 62%); background:var(--accent); border-radius:4px 4px 0 0; min-height:0; transition:filter .12s, opacity .12s; }
.rel-bar.zero{ background:transparent; }
.rel-bar.fut{ opacity:.25; }
.rel-col.hov .rel-bar{ filter:brightness(1.18); }
.rel-col.hov{ background:rgba(var(--accent-rgb),.06); }
.rel-val{ font-size:12px; font-weight:800; color:var(--text); margin-bottom:3px; }
.rel-tip{ position:absolute; left:50%; transform:translateX(-50%); background:var(--text); color:var(--bg); font-size:12px; line-height:1.35; padding:6px 10px; border-radius:8px; white-space:nowrap; z-index:5; pointer-events:none; box-shadow:0 4px 14px rgba(0,0,0,.25); }
.rel-x{ display:flex; margin-top:6px; }
.rel-x span{ text-align:center; font-size:12px; font-weight:700; color:var(--text-secondary); display:flex; flex-direction:column; line-height:1.25; }
.rel-x span em{ font-style:normal; font-weight:600; font-size:10.5px; color:var(--text-faint); }
.rel-x span.today{ color:var(--accent); }
.rel-col.today .rel-bar{ box-shadow:0 0 0 2px rgba(var(--accent-rgb),.25); }
.rel-two{ display:grid; grid-template-columns:2fr 1fr; gap:14px; }
@media (max-width:760px){ .rel-two{ grid-template-columns:1fr; } }
.rel-catrow{ display:grid; grid-template-columns:110px 1fr 70px; gap:10px; align-items:center; margin-bottom:8px; font-size:13px; }
.rel-catname{ font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rel-cattrack{ height:10px; background:var(--bg-sunken); border-radius:5px; overflow:hidden; }
.rel-cattrack div{ height:100%; border-radius:5px; }
.rel-catn{ font-weight:800; text-align:right; } .rel-catn em{ font-style:normal; font-weight:600; color:var(--text-faint); font-size:11.5px; }
.rel-now{ margin-bottom:12px; } .rel-now .n{ font-size:26px; font-weight:900; color:var(--accent); line-height:1.1; } .rel-now .l{ font-size:12.5px; color:var(--text-secondary); font-weight:700; }
.rel-day{ border-top:1px solid var(--border); }
.rel-day:first-of-type{ border-top:none; }
.rel-day-head{ display:flex; justify-content:space-between; align-items:center; padding:9px 4px; cursor:pointer; font-size:13.5px; font-weight:700; }
.rel-day-head:hover{ color:var(--accent); }
.rel-day-head b{ color:var(--accent); font-size:12.5px; }
.rel-day-list{ padding:0 4px 10px 18px; }
.rel-task{ display:flex; align-items:center; gap:8px; padding:5px 8px; border-radius:7px; cursor:pointer; font-size:13px; }
.rel-task:hover{ background:var(--bg-sunken); }
.rel-dot{ width:8px; height:8px; border-radius:50%; flex:none; }
.rel-task-t{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rel-task-c{ font-size:11px; color:var(--text-faint); font-weight:700; flex:none; }

/* ===== Espaço usado ===== */
.sto-head{ font-size:15px; margin-bottom:8px; } .sto-head span{ color:var(--text-secondary); font-size:13px; }
.sto-track{ height:12px; background:var(--bg-sunken); border-radius:6px; overflow:hidden; }
.sto-fill{ height:100%; border-radius:6px; transition:width .3s; }
.sto-fill.ok{ background:var(--success); } .sto-fill.warn{ background:var(--warning); } .sto-fill.danger{ background:var(--danger); }
.sto-msg{ font-size:13px; margin:10px 0 12px; font-weight:600; }
.sto-msg.ok{ color:var(--text-secondary); } .sto-msg.warn{ color:var(--warning); } .sto-msg.danger{ color:var(--danger); }
.sto-parts{ display:flex; flex-direction:column; gap:7px; }
.sto-part{ display:grid; grid-template-columns:minmax(150px,230px) 1fr 70px; gap:10px; align-items:center; font-size:12.5px; color:var(--text-secondary); }
.sto-part b{ text-align:right; color:var(--text); }
.sto-mini{ height:6px; background:var(--bg-sunken); border-radius:3px; overflow:hidden; } .sto-mini div{ height:100%; background:var(--accent); border-radius:3px; opacity:.75; }

/* ===== Aguardando retorno: nota apagadinha ===== */
.task-row.em-espera, .kanban-card.em-espera{ opacity:.5; transition:opacity .15s; }
.task-row.em-espera:hover, .kanban-card.em-espera:hover{ opacity:.9; }
.task-row.em-espera .ttl{ font-weight:600; }
.espera-badge{ display:inline-flex; align-items:center; gap:5px; margin-top:4px; font-size:11.5px; font-weight:700; color:var(--warning); }
.icon-action.wait-btn{ color:var(--text-faint); }
.icon-action.wait-btn:hover{ color:var(--warning); }
.icon-action.wait-btn.on{ color:var(--warning); background:var(--warning-soft); }
.btn.wait-on{ background:var(--warning-soft); color:var(--warning); border-color:var(--warning); }

/* ===== Pessoas (@nome), sugestões e progresso de checkbox ===== */
.mention-tag{ color: var(--accent); font-weight:800; cursor:pointer; border-radius:4px; padding:0 2px; background: rgba(var(--accent-rgb),.10); }
.mention-tag:hover{ background: rgba(var(--accent-rgb),.22); }
.pessoa-bar{ display:flex; flex-wrap:wrap; align-items:center; gap:7px; margin:-8px 0 18px; }
.pessoa-lbl{ font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; color:var(--text-faint); margin-right:2px; }
.pessoa-chip{ padding:4px 11px; border-radius:16px; font-size:12.5px; font-weight:700; cursor:pointer; border:1.5px solid var(--border-strong); background:var(--bg-elevated); color:var(--text-secondary); transition:all .15s; }
.pessoa-chip b{ color:var(--accent); margin-left:3px; }
.pessoa-chip i{ font-style:normal; font-size:11px; opacity:.6; margin-left:3px; }
.pessoa-chip:hover{ border-color:var(--accent); color:var(--accent); }
.pessoa-chip.active{ background:var(--accent); border-color:var(--accent); color:#fff; }
.pessoa-chip.active b, .pessoa-chip.active i{ color:#fff; }
.pessoa-panel{ margin-bottom:24px; }
.pessoa-head{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:6px; }
.pessoa-head h3{ margin:0; font-size:20px; color:var(--accent); }
.pessoa-head span{ color:var(--text-secondary); font-size:13px; flex:1; }
.pessoa-sec{ font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; color:var(--text-secondary); margin:18px 0 8px; }
.pessoa-sec small{ text-transform:none; letter-spacing:0; font-weight:600; color:var(--text-faint); }
.pessoa-row{ display:flex; align-items:flex-start; gap:12px; padding:11px 14px; margin-bottom:6px; background:var(--bg-elevated); border:1px solid var(--border); border-radius:var(--radius-md); cursor:pointer; transition:border-color .15s; }
.pessoa-row:hover{ border-color:var(--accent); }
.pessoa-row.done .pessoa-ttl{ text-decoration:line-through; opacity:.55; }
.pessoa-cat{ font-size:10.5px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; padding:3px 9px; border-radius:12px; background:var(--bg-sunken); color:var(--text-secondary); white-space:nowrap; margin-top:1px; }
.pessoa-body{ flex:1; min-width:0; }
.pessoa-ttl{ font-size:14px; font-weight:700; line-height:1.35; word-break:break-word; }
.pessoa-note{ font-size:12.5px; color:var(--text-secondary); margin-top:3px; white-space:pre-wrap; word-break:break-word; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.pessoa-date{ font-size:11.5px; color:var(--text-faint); white-space:nowrap; margin-top:2px; }

.sug-box{ position:absolute; left:0; right:96px; top:calc(100% + 4px); z-index:60; background:var(--bg-elevated); border:1px solid var(--border-strong); border-radius:var(--radius-md); box-shadow:0 14px 34px rgba(0,0,0,.22); padding:6px; }
.quick-add-box .sug-box{ right:0; }
.sug-box.up{ top:auto; bottom:calc(100% + 6px); }
.sug-hint{ font-size:10.5px; color:var(--text-faint); padding:3px 8px 5px; text-transform:uppercase; letter-spacing:.05em; font-weight:700; }
.sug-item{ display:flex; justify-content:space-between; gap:12px; align-items:center; padding:8px 10px; border-radius:var(--radius-sm); cursor:pointer; font-size:13.5px; }
.sug-item.sel, .sug-item:hover{ background:rgba(var(--accent-rgb),.12); }
.sug-t{ font-weight:700; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sug-m{ font-size:11px; color:var(--text-faint); white-space:nowrap; text-transform:uppercase; letter-spacing:.03em; }

.chk-prog{ display:inline-flex; align-items:center; gap:6px; margin-left:9px; padding:1px 8px 1px 7px; border-radius:11px; font-size:11px; font-weight:800; color:var(--text-secondary); background:var(--bg-sunken); border:1px solid var(--border); vertical-align:middle; white-space:nowrap; }
.chk-bar{ width:30px; height:5px; border-radius:3px; background:var(--border-strong); overflow:hidden; display:inline-block; }
.chk-bar > span{ display:block; height:100%; background:var(--accent); border-radius:3px; }
.chk-prog.done{ color:var(--success); border-color:var(--success); }
.chk-prog.done .chk-bar > span{ background:var(--success); }

/* discreto: menu "@ Pessoas" no cabeçalho + sugestão de nomes ao digitar @ */
.pessoa-menu{ position:relative; display:inline-block; }
.pessoa-link.on{ color:var(--accent); font-weight:800; }
.pessoa-pop{ position:absolute; right:0; top:calc(100% + 6px); z-index:90; min-width:200px; max-height:300px; overflow:auto; background:var(--bg-elevated); border:1px solid var(--border-strong); border-radius:var(--radius-md); box-shadow:0 14px 34px rgba(0,0,0,.25); padding:5px; }
.pessoa-pop-item{ display:flex; justify-content:space-between; gap:14px; align-items:center; padding:7px 10px; border-radius:var(--radius-sm); cursor:pointer; font-size:13px; font-weight:700; }
.pessoa-pop-item:hover{ background:rgba(var(--accent-rgb),.12); }
.pessoa-pop-item small, .at-item small{ font-size:11px; color:var(--text-faint); font-weight:600; }
.at-pop{ position:fixed; z-index:5000; min-width:180px; max-width:260px; background:var(--bg-elevated); border:1px solid var(--border-strong); border-radius:var(--radius-md); box-shadow:0 14px 34px rgba(0,0,0,.3); padding:5px; }
.at-hint{ font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; color:var(--text-faint); padding:3px 8px 4px; }
.at-item{ display:flex; justify-content:space-between; gap:12px; align-items:center; padding:6px 10px; border-radius:var(--radius-sm); cursor:pointer; font-size:13.5px; font-weight:700; }
.at-item.sel{ background:rgba(var(--accent-rgb),.16); color:var(--accent); }

/* ===== Sincronização ===== */
.sync-tag{ opacity:.85; font-weight:700; }
.sync-tag.ok{ color:var(--success); }
.sync-tag.err{ color:var(--danger); }
.sync-overlay{ position:fixed; inset:0; z-index:6000; display:flex; align-items:center; justify-content:center; padding:20px;
  background: radial-gradient(circle at 30% 20%, rgba(139,0,196,0.18), transparent 45%), var(--bg); overflow:auto; }
.sync-card{ width:100%; max-width:380px; background:var(--bg-elevated); border:1px solid var(--border); border-radius:var(--radius-lg, 18px);
  box-shadow:0 20px 60px rgba(0,0,0,.28); padding:30px 26px; text-align:center; }
.sync-card.wide{ max-width:560px; }
.sync-card h2{ margin:6px 0 8px; font-size:22px; }
.sync-card p{ color:var(--text-secondary); font-size:13.5px; line-height:1.5; margin:0 0 16px; }
.sync-input{ width:100%; margin-bottom:10px; text-align:left; letter-spacing:normal; font-size:15px; }
.sync-links{ display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-top:16px; font-size:12.5px; }
.sync-links span{ color:var(--text-secondary); cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.sync-links span:hover{ color:var(--accent); }
.sync-cols{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.sync-col{ display:flex; flex-direction:column; gap:6px; align-items:stretch; text-align:left; padding:14px; border:1px solid var(--border-strong); border-radius:var(--radius-md); background:var(--bg-sunken); font-size:13px; color:var(--text-secondary); }
.sync-col b{ color:var(--text); font-size:14.5px; }
.sync-col .btn{ margin-top:8px; }
@media (max-width:520px){ .sync-cols{ grid-template-columns:1fr; } }

/* ===== Celular / tablet pequeno ===== */
@media (max-width: 700px){
  .task-row{ flex-wrap:wrap; row-gap:6px; }
  .task-row .body{ flex:1 1 0; min-width:140px; }
  .row-actions.row-actions-hover{ opacity:1; pointer-events:auto; }
  .task-row .row-actions{ flex:1 0 100%; justify-content:flex-end; flex-wrap:wrap; padding-top:2px; border-top:1px dashed var(--border); }
  .chip-filter{ padding:7px 12px; font-size:11.5px; }
  .chip-filter-bar{ gap:7px; }
  .afaz-header{ flex-wrap:wrap; }
  .afaz-header-actions{ gap:12px; margin-left:0; }
  .pessoa-row{ flex-wrap:wrap; }
  .pessoa-date{ flex-basis:100%; }
  .topbar-search kbd, .topbar-search .kbd{ display:none; }
  .sug-box{ right:0; }
}
html, body{ overflow-x:hidden; }
@media (hover: none){ .row-actions.row-actions-hover{ opacity:1; pointer-events:auto; } }
@media (max-width:700px){ .modal-head .sync-tag{ display:none; } .modal-head{ flex-wrap:wrap; } }

/* marca-texto cobre o trecho inteiro mesmo quando a letra foi aumentada depois (tamanho dentro do marca-texto) */
.rich-editor span[style*="background-color"] *:not(input){ background-color: inherit; }

/* ---------------- Aba Kanban (quadros por projeto) ---------------- */
.kb-wrap{ min-width:0; }
.kb-select{ font:inherit; font-weight:800; font-size:14px; padding:7px 10px; border-radius:10px; border:1px solid var(--border-strong); background:var(--bg-elevated); color:var(--text); max-width:260px; cursor:pointer; }
.kb-busca{ font:inherit; font-size:13px; padding:7px 10px; border-radius:10px; border:1px solid var(--border-strong); background:var(--bg-elevated); color:var(--text); width:180px; }
.kb-resumo{ font-size:12px; font-weight:700; color:var(--text-secondary); margin:-6px 0 12px; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.kb-barra{ width:160px; height:6px; border-radius:6px; background:var(--bg-sunken); border:1px solid var(--border); overflow:hidden; }
.kb-barra span{ display:block; height:100%; border-radius:6px; transition:width .25s; }
.kb-board{ display:flex; gap:12px; align-items:flex-start; overflow-x:auto; padding-bottom:14px; min-height:60vh; }
.kb-col{ flex:0 0 272px; width:272px; background:var(--bg-sunken); border:1px solid var(--border); border-radius:var(--radius-md); padding:10px; display:flex; flex-direction:column; gap:8px; max-height:calc(100vh - 210px); transition:background .15s; }
.kb-col.drag-over{ background:var(--accent-soft); outline:2px dashed var(--accent); outline-offset:-2px; }
.kb-col-head{ display:flex; align-items:center; gap:7px; padding:2px 2px 6px; border-top:3px solid transparent; margin:-10px -10px 0; padding:10px 12px 6px; border-radius:var(--radius-md) var(--radius-md) 0 0; position:relative; }
.kb-dot{ width:9px; height:9px; border-radius:50%; flex-shrink:0; }
.kb-col-head h4{ font-family:'Nunito',sans-serif; font-size:13.5px; font-weight:800; cursor:text; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
.kb-col-nome-input{ font:inherit; font-weight:800; font-size:13.5px; padding:3px 6px; border-radius:6px; border:1px solid var(--accent); background:var(--bg-elevated); color:var(--text); min-width:0; flex:1; }
.kb-cnt{ margin-left:auto; font-size:11px; font-weight:800; color:var(--text-faint); }
.kb-col-menu{ position:relative; }
.kb-col-menu summary{ list-style:none; cursor:pointer; padding:0 6px; border-radius:6px; color:var(--text-faint); font-weight:900; }
.kb-col-menu summary::-webkit-details-marker{ display:none; }
.kb-col-menu summary:hover{ background:var(--border); color:var(--text); }
.kb-col-pop{ position:absolute; right:0; top:24px; z-index:20; background:var(--bg-elevated); border:1px solid var(--border-strong); border-radius:12px; box-shadow:var(--card-shadow-hover); padding:6px; width:220px; display:flex; flex-direction:column; gap:2px; }
.kb-col-pop button{ font:inherit; font-size:12.5px; font-weight:700; text-align:left; background:none; border:0; color:var(--text); padding:7px 8px; border-radius:8px; cursor:pointer; }
.kb-col-pop button:hover:not(:disabled){ background:var(--bg-sunken); }
.kb-col-pop button:disabled{ opacity:.4; cursor:default; }
.kb-col-pop button.perigo{ color:var(--danger); }
.kb-cores{ display:flex; flex-wrap:wrap; gap:6px; padding:6px 8px; }
.kb-cor{ width:20px; height:20px; border-radius:50%; cursor:pointer; border:2px solid transparent; box-shadow:0 0 0 1px var(--border-strong); display:inline-flex; align-items:center; justify-content:center; }
.kb-cor.on{ border-color:var(--bg-elevated); box-shadow:0 0 0 2px var(--text); }
.kb-cor.sem{ background:var(--bg-sunken); color:var(--text-faint); font-size:10px; font-weight:900; }
.kb-cards{ display:flex; flex-direction:column; gap:8px; overflow-y:auto; min-height:30px; }
.kb-fim{ min-height:18px; flex:1; }
.kb-card{ background:var(--bg-elevated); border:1px solid var(--border); border-left:4px solid var(--border); border-radius:10px; padding:9px 10px; cursor:grab; box-shadow:var(--card-shadow); transition:box-shadow .15s, opacity .15s; overflow-wrap:anywhere; }
.kb-card:hover{ box-shadow:var(--card-shadow-hover); }
.kb-card.dragging{ opacity:.35; }
.kb-card.drop-antes{ box-shadow:0 -3px 0 0 var(--accent), var(--card-shadow); }
.kb-card-ttl{ font-size:13px; font-weight:700; line-height:1.35; }
.kb-card-desc{ font-size:11.5px; color:var(--text-secondary); margin-top:4px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; white-space:pre-line; }
.kb-prazo{ display:inline-block; margin-top:6px; font-size:10.5px; font-weight:800; padding:2px 7px; border-radius:6px; background:var(--bg-sunken); color:var(--text-secondary); }
.kb-prazo.hoje{ background:var(--warning-soft); color:var(--warning); }
.kb-prazo.atrasado{ background:var(--danger-soft); color:var(--danger); }
.kb-add{ font:inherit; font-size:12.5px; padding:8px 10px; border-radius:10px; border:1px dashed var(--border-strong); background:transparent; color:var(--text); width:100%; box-sizing:border-box; }
.kb-add:focus{ outline:none; border-style:solid; border-color:var(--accent); background:var(--bg-elevated); }
.kb-col-nova{ background:transparent; border-style:dashed; }
.kb-nova-col-btn{ font:inherit; font-weight:800; font-size:13px; background:none; border:0; color:var(--text-secondary); padding:8px; cursor:pointer; text-align:left; border-radius:8px; }
.kb-nova-col-btn:hover{ background:var(--bg-sunken); color:var(--accent); }
.kb-vazio{ max-width:460px; margin:40px auto; text-align:center; padding:28px; display:flex; flex-direction:column; align-items:center; gap:8px; }
.kb-vazio h4{ font-size:17px; font-weight:800; }
.kb-vazio p{ color:var(--text-secondary); font-size:13px; }
.kb-novo-quadro{ display:flex; gap:8px; width:100%; margin-top:8px; }
.kb-novo-quadro input{ flex:1; font:inherit; font-size:13px; padding:9px 11px; border-radius:10px; border:1px solid var(--border-strong); background:var(--bg-elevated); color:var(--text); min-width:0; }
.kb-modal-linha{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.kb-criado{ font-size:11.5px; color:var(--text-faint); font-weight:700; }
@media (max-width: 700px){
  .kb-col{ flex-basis:82vw; width:82vw; max-height:none; }
  .kb-busca{ width:100%; }
  .kb-modal-linha{ grid-template-columns:1fr; }
}
