:root {
  --bg: #0e1117;
  --bg2: #161b22;
  --bg3: #1c2230;
  --panel: #1a1f29;
  --border: #2a313c;
  --text: #e6edf3;
  --muted: #8b949e;
  --accent: #489EA9;
  --accent2: #0A4D56;
  --teal: #0A4D56;
  --turq: #489EA9;
  --danger: #ef4444;
  --green: #22c55e;
  --radius: 10px;
  --shadow: 0 8px 30px rgba(0,0,0,.45);
}

* { box-sizing: border-box; margin: 0; padding: 0; }
body {
  font-family: -apple-system, 'Segoe UI', Roboto, Inter, sans-serif;
  background: var(--bg);
  color: var(--text);
  height: 100vh;
  overflow: hidden;
}
.hidden { display: none !important; }
button { font-family: inherit; cursor: pointer; }
input, textarea, select {
  font-family: inherit;
  background: var(--bg);
  border: 1px solid var(--border);
  color: var(--text);
  border-radius: 8px;
  padding: 10px 12px;
  width: 100%;
  font-size: 14px;
  outline: none;
}
input:focus, textarea:focus, select:focus { border-color: var(--accent); }
label { display: block; font-size: 12px; color: var(--muted); margin: 12px 0 5px; }

/* Login */
.login-screen {
  height: 100vh; display: flex; align-items: center; justify-content: center;
  background: radial-gradient(circle at 30% 20%, #1a2030, var(--bg));
}
.login-box {
  background: var(--panel); border: 1px solid var(--border);
  padding: 36px; border-radius: 16px; width: 340px; box-shadow: var(--shadow);
}
.login-box h1 { font-size: 22px; margin-bottom: 4px; }
.login-box p { color: var(--muted); font-size: 13px; margin-bottom: 18px; }
.login-box input { margin-bottom: 14px; }
.login-box button {
  width: 100%; background: var(--accent); color: #fff; border: none;
  padding: 11px; border-radius: 8px; font-weight: 600; font-size: 14px;
}
.login-box button:hover { background: var(--accent2); }
.login-error { color: var(--danger); font-size: 13px; margin-top: 10px; min-height: 18px; }
.login-error.ok { color: var(--ok, #2e9e5b); }
/* v181: link "Esqueci a senha" e olhinho de mostrar/ocultar senha */
.link-btn { background: none; border: 0; color: var(--accent, #3987e5); font-size: 13px; cursor: pointer; padding: 6px 2px; margin-top: 4px; text-decoration: underline; }
.link-btn:hover { opacity: .8; }
.pwd-wrap { position: relative; display: flex; align-items: center; }
.pwd-wrap input { flex: 1; padding-right: 38px; }
.pwd-eye { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); background: none; border: 0; cursor: pointer; font-size: 16px; line-height: 1; opacity: .55; padding: 4px 6px; }
.pwd-eye:hover, .pwd-eye.on { opacity: 1; }

/* Topbar */
.topbar {
  height: 56px; display: flex; align-items: center; justify-content: space-between;
  padding: 0 18px; background: var(--bg2); border-bottom: 1px solid var(--border);
}
.brand { display: flex; align-items: center; gap: 10px; font-weight: 600; font-size: 16px; }
.logo { color: var(--accent); font-size: 20px; }
.actions { display: flex; gap: 8px; }
.btn {
  background: var(--bg3); border: 1px solid var(--border); color: var(--text);
  padding: 8px 14px; border-radius: 8px; font-size: 13px; font-weight: 500;
}
.btn:hover { background: #232b38; }
.btn.ghost { background: transparent; }
.btn.ghost:hover { background: var(--bg3); }
.btn.primary { background: var(--accent); border-color: var(--accent); color: #fff; }
.btn.primary:hover { background: var(--accent2); }
.btn.danger { background: transparent; border-color: #5b2a2a; color: var(--danger); }
.btn.danger:hover { background: rgba(239,68,68,.12); }
.btn.small { padding: 6px 10px; font-size: 12px; }

/* Board */
.board {
  display: flex; gap: 14px; padding: 18px; height: calc(100vh - 56px);
  overflow-x: auto; overflow-y: hidden; align-items: flex-start;
}
.list {
  background: var(--bg2); border: 1px solid var(--border); border-radius: var(--radius);
  width: 272px; min-width: 272px; max-height: 100%; display: flex; flex-direction: column;
}
.list.drag-over { outline: 2px dashed var(--accent); outline-offset: -2px; }
.list-head {
  display: flex; align-items: center; gap: 8px; padding: 12px 14px;
  border-bottom: 1px solid var(--border); cursor: grab;
}
.list-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
.list-name { font-weight: 600; font-size: 14px; flex: 1; cursor: pointer; border-radius: 5px; padding: 1px 3px; }
.list-name:hover { color: var(--turq); background: var(--bg3); }
.list-sort { font-size: 10px; font-weight: 700; color: var(--turq); background: var(--bg3); padding: 2px 6px; border-radius: 8px; white-space: nowrap; }
.list-del { color: var(--muted); font-size: 13px; background: none; border: none; padding: 0 2px; cursor: pointer; opacity: .55; flex-shrink: 0; }
.list-del:hover { opacity: 1; color: #f87171; }
.list-count { background: var(--bg3); color: var(--muted); font-size: 12px; padding: 2px 8px; border-radius: 10px; }
.list-menu { color: var(--muted); font-size: 18px; background: none; border: none; padding: 0 4px; }
.cards { flex: 1; overflow-y: auto; padding: 10px; display: flex; flex-direction: column; gap: 8px; min-height: 40px; }
.add-card { margin: 0 10px 10px; color: var(--muted); font-size: 13px; text-align: left; padding: 8px; border-radius: 8px; background: transparent; border: 1px dashed var(--border); }
.add-card:hover { color: var(--text); border-color: var(--accent); }

.card {
  background: var(--bg3); border: 1px solid var(--border); border-radius: 8px;
  padding: 11px 12px; cursor: grab; font-size: 14px;
}
.card:hover { border-color: var(--accent); }
.card.dragging { opacity: .4; }
.card-title { line-height: 1.35; word-break: break-word; }
.card-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 8px; }
.tag { font-size: 11px; padding: 2px 7px; border-radius: 6px; background: #2a3344; color: #aeb9cc; }
.card-foot { display: flex; align-items: center; gap: 8px; margin-top: 9px; font-size: 11px; color: var(--muted); }
.prio { font-size: 10px; padding: 2px 7px; border-radius: 6px; font-weight: 600; text-transform: uppercase; }
.prio.alta { background: rgba(245,158,11,.18); color: #f59e0b; }
.prio.urgente { background: rgba(239,68,68,.18); color: #ef4444; }
.prio.normal { background: rgba(99,102,241,.16); color: #818cf8; }
.prio.baixa { background: rgba(139,148,158,.16); color: #8b949e; }
.src-badge { background: rgba(34,197,94,.14); color: var(--green); padding: 2px 6px; border-radius: 6px; font-size: 10px; }
.due { margin-left: auto; }

/* Modal */
.modal-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,.6);
  display: flex; align-items: center; justify-content: center; z-index: 50; padding: 20px;
}
.modal {
  background: var(--panel); border: 1px solid var(--border); border-radius: 14px;
  width: 560px; max-width: 100%; max-height: 90vh; display: flex; flex-direction: column; box-shadow: var(--shadow);
}
.modal-head { display: flex; padding: 18px 18px 0; gap: 10px; }
.modal-title-input { font-size: 17px; font-weight: 600; border: none; background: transparent; padding: 6px 0; }
.close-x { background: none; border: none; color: var(--muted); font-size: 26px; line-height: 1; padding: 0 4px; }
.close-x:hover { color: var(--text); }
.modal-body { padding: 6px 18px 18px; overflow-y: auto; }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.modal-foot { display: flex; align-items: center; gap: 10px; padding: 14px 18px; border-top: 1px solid var(--border); }
.spacer { flex: 1; }
.meta-box pre {
  background: var(--bg); border: 1px solid var(--border); border-radius: 8px;
  padding: 10px; font-size: 12px; color: var(--muted); overflow-x: auto; white-space: pre-wrap;
}
.comments { margin-top: 8px; }
#commentList { display: flex; flex-direction: column; gap: 6px; margin-bottom: 8px; }
.cmt { background: var(--bg); border: 1px solid var(--border); border-radius: 8px; padding: 8px 10px; font-size: 13px; }
.cmt .who { color: var(--accent); font-size: 11px; margin-bottom: 2px; }

/* Side panels */
.side-panel {
  position: fixed; top: 0; right: 0; height: 100vh; width: 420px; max-width: 100%;
  background: var(--panel); border-left: 1px solid var(--border); z-index: 40;
  display: flex; flex-direction: column; box-shadow: var(--shadow);
}
.side-head { display: flex; align-items: center; justify-content: space-between; padding: 16px 18px; border-bottom: 1px solid var(--border); }
.side-head h2 { font-size: 17px; }
.side-body { padding: 18px; overflow-y: auto; }
.side-body section { margin-bottom: 26px; }
.side-body h3 { font-size: 14px; margin-bottom: 6px; }
.hint { font-size: 12px; color: var(--muted); margin-bottom: 10px; line-height: 1.4; }
.events { list-style: none; font-size: 13px; color: var(--muted); display: flex; flex-direction: column; gap: 6px; }
.events code { background: var(--bg); padding: 2px 6px; border-radius: 5px; color: var(--accent); margin-right: 6px; }

.wh-item, .in-item {
  background: var(--bg2); border: 1px solid var(--border); border-radius: 10px;
  padding: 12px; margin-bottom: 10px;
}
.wh-item .row, .in-item .row { display: flex; gap: 8px; align-items: center; margin-bottom: 8px; }
.wh-item input, .in-item input, .in-item select, .wh-item select { font-size: 13px; padding: 8px 10px; }
.url-copy { display: flex; gap: 6px; align-items: center; }
.url-copy code {
  flex: 1; background: var(--bg); padding: 8px 10px; border-radius: 7px; font-size: 11px;
  color: var(--green); overflow-x: auto; white-space: nowrap;
}
.mini { display: flex; gap: 6px; flex-wrap: wrap; }
.mini button { padding: 5px 9px; font-size: 12px; }
.badge-on { color: var(--green); font-size: 11px; }
.badge-off { color: var(--muted); font-size: 11px; }

/* Activity */
.act-item { display: flex; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--border); font-size: 13px; }
.act-type { color: var(--accent); font-weight: 600; }
.act-time { color: var(--muted); font-size: 11px; margin-left: auto; }

/* Toast */
.toast {
  position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%);
  background: var(--bg3); border: 1px solid var(--border); color: var(--text);
  padding: 11px 18px; border-radius: 10px; font-size: 14px; z-index: 100; box-shadow: var(--shadow);
}
.toast.err { border-color: var(--danger); color: #fca5a5; }

::-webkit-scrollbar { width: 9px; height: 9px; }
::-webkit-scrollbar-thumb { background: #2c3442; border-radius: 8px; }
::-webkit-scrollbar-track { background: transparent; }

/* ---- Acrescimos multiusuario ---- */
.login-logo { font-size: 38px; color: var(--accent); text-align: center; margin-bottom: 6px; }
.login-box input { margin-bottom: 12px; }
.user-chip { display: flex; align-items: center; gap: 6px; padding: 0 6px 0 12px; border-left: 1px solid var(--border); margin-left: 4px; }
#userName { font-size: 13px; font-weight: 600; }
.role-badge { font-size: 10px; padding: 2px 7px; border-radius: 6px; background: var(--bg3); color: var(--muted); text-transform: uppercase; font-weight: 700; }
.role-badge.admin { background: rgba(99,102,241,.2); color: #a5b4fc; }

.section-block { margin-top: 14px; border-top: 1px solid var(--border); padding-top: 12px; }
.inline-add { display: flex; gap: 6px; margin-top: 8px; }
.inline-add input { flex: 1; }
.inline-add input.narrow { flex: 0 0 130px; }

.link-row { display: flex; align-items: center; gap: 8px; background: var(--bg); border: 1px solid var(--border); border-radius: 8px; padding: 8px 10px; margin-bottom: 6px; }
.link-row a { color: var(--accent); text-decoration: none; font-size: 13px; flex: 1; word-break: break-all; }
.link-row a:hover { text-decoration: underline; }
.link-meta { font-size: 11px; color: var(--muted); white-space: nowrap; }
.link-del, .cmt-del { background: none; border: none; color: var(--muted); font-size: 16px; cursor: pointer; padding: 0 2px; }
.link-del:hover, .cmt-del:hover { color: var(--danger); }

.cmt { background: var(--bg); border: 1px solid var(--border); border-radius: 8px; padding: 8px 10px; }
.cmt-head { display: flex; align-items: center; gap: 8px; margin-bottom: 3px; }
.cmt-head .who { color: var(--accent); font-size: 12px; font-weight: 600; }
.cmt-head .when { color: var(--muted); font-size: 11px; }
.cmt-head .cmt-del { margin-left: auto; }
.cmt-text { font-size: 13px; line-height: 1.4; }

.small-modal { width: 380px; }

.act-item { display: flex; align-items: flex-start; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--border); }
.act-main { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.act-user { font-size: 11px; color: var(--accent); font-weight: 700; text-transform: uppercase; }
.act-sum { font-size: 13px; line-height: 1.35; }
.act-sum.act-danger { color: #fca5a5; font-weight: 600; }
.act-time { color: var(--muted); font-size: 11px; white-space: nowrap; }

/* ---- Barra de status dentro da tarefa (mover sem arrastar) ---- */
.status-bar { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid var(--border); flex-wrap: wrap; }
.status-label { font-size: 11px; text-transform: uppercase; letter-spacing: .5px; color: var(--muted); font-weight: 700; }
.status-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.list-mover { position: relative; }
.lm-trigger { display: inline-flex; align-items: center; gap: 8px; background: var(--bg); border: 1px solid var(--border); color: var(--text); font-size: 13px; font-weight: 600; padding: 7px 12px; border-radius: 8px; cursor: pointer; min-width: 220px; }
.lm-trigger:hover { border-color: var(--turq); }
.lm-caret { margin-left: auto; color: var(--muted); font-size: 11px; }
.lm-dot { width: 9px; height: 9px; border-radius: 50%; flex: 0 0 auto; }
.lm-panel { position: absolute; top: calc(100% + 4px); left: 0; z-index: 30; width: 300px; max-width: 86vw; background: var(--bg2); border: 1px solid var(--border); border-radius: 10px; box-shadow: var(--shadow); padding: 8px; }
.lm-panel.hidden { display: none; }
.lm-search { width: 100%; background: var(--bg); border: 1px solid var(--border); color: var(--text); border-radius: 7px; padding: 8px 10px; font-size: 13px; margin-bottom: 6px; }
.lm-search:focus { outline: none; border-color: var(--turq); }
.lm-options { max-height: 280px; overflow-y: auto; display: flex; flex-direction: column; gap: 1px; }
.lm-group { font-size: 10px; text-transform: uppercase; letter-spacing: .5px; color: var(--muted); font-weight: 700; padding: 8px 8px 4px; }
.lm-opt { display: flex; align-items: center; gap: 9px; width: 100%; text-align: left; background: none; border: none; color: var(--text); font-size: 13px; padding: 8px 9px; border-radius: 7px; cursor: pointer; }
.lm-opt:hover { background: var(--bg3); }
.lm-opt-name { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lm-opt.atual { font-weight: 700; }
.lm-check { color: var(--turq); font-weight: 700; }

/* ---- Marca Genaro Advocacia ---- */
.brand { display: flex; align-items: center; gap: 10px; }
.brand-logo { width: 34px; height: 34px; border-radius: 0; object-fit: contain; }
.brand-name { font-weight: 700; font-size: 16px; letter-spacing: .2px; color: var(--text); }
.login-logo-img { width: 220px; height: auto; border-radius: 0; display: block; margin: 0 auto 18px; box-shadow: none; }

/* Topbar e botoes primarios na cor do escritorio */
.topbar { border-bottom: 1px solid var(--border); background: linear-gradient(180deg, rgba(10,77,86,.18), transparent); }
.btn.primary { background: var(--teal); border-color: var(--teal); color: #fff; }
.btn.primary:hover { background: #0c5c68; }
.login-box button { background: var(--teal); }
.login-box button:hover { background: #0c5c68; }
.role-badge.admin { background: rgba(72,158,169,.22); color: #7fd0da; }

/* ---- Barra de listas (abas estilo ClickUp) ---- */
.list-tabs {
  display: flex; gap: 6px; padding: 8px 16px 0; flex-wrap: wrap;
  background: var(--bg); border-bottom: 1px solid var(--border);
}
/* v202: linha dos grupos com a caixa de busca de ficha ocupando o espaco livre a direita */
.tabs-row { display: flex; align-items: flex-end; flex-wrap: nowrap; background: var(--bg); border-bottom: 1px solid var(--border); }
.tabs-row .list-tabs { border-bottom: none; flex: 0 0 auto; min-width: 0; }
.ficha-busca-wrap { flex: 1 1 auto; position: relative; min-width: 160px; padding: 6px 16px 6px 8px; }
.ficha-busca-input {
  width: 100%; box-sizing: border-box; height: 34px; padding: 0 12px;
  background: var(--bg2); color: var(--text);
  border: 1px solid var(--border); border-radius: 8px; font-size: 13px;
}
.ficha-busca-input:focus { outline: none; border-color: var(--teal); }
.ficha-busca-input::placeholder { color: var(--muted); }
.ficha-busca-drop {
  position: absolute; top: 42px; left: 8px; right: 16px; z-index: 40;
  background: var(--bg2); border: 1px solid var(--border); border-radius: 10px;
  box-shadow: 0 10px 30px rgba(0,0,0,.4); max-height: 360px; overflow-y: auto; padding: 6px;
}
.fb-item { padding: 8px 10px; border-radius: 7px; cursor: pointer; font-size: 13px; display: flex; align-items: center; gap: 8px; }
.fb-item:hover { background: var(--bg3); }
.fb-titulo { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fb-sub { color: var(--muted); font-size: 11px; flex: 0 0 auto; }
.fb-tag { font-size: 10px; padding: 1px 7px; border-radius: 999px; }
.fb-tag.arq { color: #f0a94c; background: rgba(240,169,76,.14); }
.fb-tag.ok { color: #4ccf7e; background: rgba(76,207,126,.14); }
.fb-reativar { flex: 0 0 auto; font-size: 11px; font-weight: 600; color: #fff; background: var(--teal); border: none; border-radius: 6px; padding: 3px 10px; cursor: pointer; }
.fb-reativar:hover { filter: brightness(1.08); }
.fb-reativar:disabled { opacity: .6; cursor: default; }
.fb-empty { padding: 10px; color: var(--muted); font-size: 12px; }
.list-tabs .tab {
  background: transparent; color: var(--muted); border: 1px solid transparent;
  border-bottom: none; padding: 8px 14px; border-radius: 8px 8px 0 0;
  font-size: 13px; font-weight: 600;
}
.list-tabs .tab:hover { color: var(--text); background: var(--bg2); }
.list-tabs .tab.active {
  color: #fff; background: var(--teal); border-color: var(--teal);
}

/* ---- Acessos por usuario ---- */
.access-box {
  margin: 8px 0; padding: 8px 10px; background: var(--bg2);
  border: 1px solid var(--border); border-radius: 8px;
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
}
.access-label { font-size: 12px; color: var(--muted); width: 100%; }
.chk { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; color: var(--text); width: auto; margin: 0; }
.chk input { width: auto; }

/* ---- Fluxo de automacao ---- */
.auto-flow { display: flex; align-items: center; gap: 10px; margin-top: 6px; }
.auto-col { background: var(--bg3); border: 1px solid var(--border); border-radius: 8px; padding: 6px 10px; font-size: 13px; }
.auto-arrow { color: var(--turq); font-size: 16px; }
.badge-on { color: var(--green); font-size: 12px; }
.badge-off { color: var(--muted); font-size: 12px; }

.list-tabs .tab:last-child { margin-left: auto; }
.chk-tudo { border-left: 1px solid var(--border); padding-left: 10px; margin-left: 4px; font-weight: 600; }

/* ---------------- Confete, Dica do Dia e Gamificação ---------------- */
.confetti-canvas { position: fixed; inset: 0; width: 100vw; height: 100vh; pointer-events: none; z-index: 9999; }

/* v189: Dica do Dia ocupa no máximo metade da tela, centralizada (o overlay já centraliza),
   com folga para os comentários dos temas repetitivos do TST. .dica-modal.small-modal vence
   o width fixo do .small-modal por especificidade; no celular volta a quase largura cheia. */
.dica-modal.small-modal { width: min(760px, 50vw); max-width: 50vw; max-height: 84vh; }
.dica-modal .modal-body { max-height: 66vh; }
@media (max-width: 760px) { .dica-modal.small-modal { width: 94vw; max-width: 94vw; } }
.dica-content { background: var(--bg); border: 1px solid var(--border); border-left: 4px solid var(--turq); border-radius: 10px; padding: 16px 18px; }
.dica-title { font-weight: 800; color: var(--turq); font-size: 15px; margin-bottom: 8px; }
.dica-body { font-size: 14px; line-height: 1.6; color: var(--text); }
.dica-disclaimer { margin-top: 12px; font-size: 11px; color: var(--muted); line-height: 1.4; }

.gami-level { background: linear-gradient(135deg, var(--teal), var(--turq)); border-radius: 12px; padding: 16px; color: #fff; margin-bottom: 14px; }
.gami-badge { font-size: 18px; font-weight: 800; margin-bottom: 10px; }
.gami-xpbar { height: 10px; background: rgba(255,255,255,.25); border-radius: 999px; overflow: hidden; }
.gami-xpbar > div { height: 100%; background: #fff; border-radius: 999px; transition: width .5s; }
.gami-xptext { font-size: 12px; margin-top: 8px; opacity: .92; }
.gami-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 14px; }
.gami-card { background: var(--bg); border: 1px solid var(--border); border-radius: 10px; padding: 12px; display: flex; flex-direction: column; gap: 2px; }
.gami-card .gn { font-size: 22px; font-weight: 800; color: var(--text); }
.gami-card .gl { font-size: 11px; color: var(--muted); }
.gami-meta { background: var(--bg); border: 1px solid var(--border); border-radius: 10px; padding: 12px; }
.gami-meta-top { display: flex; justify-content: space-between; font-size: 12px; color: var(--muted); margin-bottom: 8px; }
.gami-metabar { height: 12px; background: var(--bg3); border-radius: 999px; overflow: hidden; }
.gami-metabar > div { height: 100%; background: linear-gradient(90deg, var(--turq), var(--green)); border-radius: 999px; transition: width .5s; }

/* ---------------- Controladoria ---------------- */
.ctrl { position: fixed; top: 56px; left: 0; right: 0; bottom: 0; overflow-y: auto; padding: 0 18px 40px; background: var(--bg); z-index: 4; }
.ctrl-head { display: flex; align-items: center; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--border); position: sticky; top: 0; background: var(--bg); z-index: 5; }
.ctrl-tabs { display: flex; gap: 6px; }
.ctrl-tab { background: transparent; border: 1px solid transparent; color: var(--muted); font-weight: 600; font-size: 13px; padding: 7px 14px; border-radius: 8px; cursor: pointer; }
.ctrl-tab.active { color: #fff; background: var(--teal); border-color: var(--teal); }
.ctrl-hint { margin-left: auto; font-size: 11px; color: var(--muted); }
.ctrl-pane { padding-top: 14px; }
.ctrl-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 12px; }
.ctrl-toolbar input, .ctrl-toolbar select { background: var(--bg2); border: 1px solid var(--border); color: var(--text); border-radius: 8px; padding: 8px 10px; font-size: 13px; }
#procSearch { flex: 1; min-width: 240px; }
.ctrl-count { font-size: 12px; color: var(--muted); margin-left: auto; }
.ctrl-label { font-size: 12px; color: var(--muted); }
.ctrl-sep { width: 1px; height: 22px; background: var(--border); margin: 0 4px; }
.ctrl-subtabs { display: flex; gap: 6px; margin-bottom: 12px; }
.pub-filter { background: transparent; border: 1px solid var(--border); color: var(--muted); font-size: 12px; font-weight: 600; padding: 5px 12px; border-radius: 999px; cursor: pointer; }
.pub-filter.active { color: #fff; background: var(--turq); border-color: var(--turq); }

.proc-list { display: flex; flex-direction: column; gap: 6px; }
.proc-row { display: flex; align-items: center; gap: 14px; background: var(--bg2); border: 1px solid var(--border); border-radius: 10px; padding: 11px 14px; cursor: pointer; }
.proc-row:hover { border-color: var(--turq); }
.proc-main { flex: 1; min-width: 0; }
.proc-title { font-weight: 600; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.proc-sub { font-size: 12px; color: var(--muted); margin-top: 2px; }
.proc-meta { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; max-width: 42%; }
.proc-resp { font-size: 12px; color: var(--turq); }
.proc-hist { font-size: 11px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.proc-pager { display: flex; align-items: center; gap: 12px; justify-content: center; margin-top: 16px; }
.pager-now { font-size: 12px; color: var(--muted); }

.proc-modal { max-width: 680px; }
.proc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; margin-bottom: 6px; }
.proc-modal input[readonly] { color: var(--muted); }

.pub-list { display: flex; flex-direction: column; gap: 8px; }
.pub-row { background: var(--bg2); border: 1px solid var(--border); border-left: 3px solid var(--turq); border-radius: 8px; padding: 12px 14px; }
.pub-row.done { border-left-color: var(--muted); opacity: .7; }
.pub-top { display: flex; align-items: center; gap: 10px; font-size: 12px; margin-bottom: 4px; }
.pub-trib { font-weight: 700; color: var(--turq); }
.pub-classe { color: var(--text); }
.pub-data { margin-left: auto; color: var(--muted); }
.pub-proc { font-size: 12px; color: var(--muted); margin-bottom: 6px; }
.pub-texto { font-size: 13px; line-height: 1.5; color: var(--text); white-space: pre-wrap; }
.pub-acts { display: flex; gap: 8px; margin-top: 10px; }

/* ---------------- Agenda ---------------- */
.agenda-bar { justify-content: space-between; }
.ag-views { display: flex; gap: 4px; }
.ag-view { background: transparent; border: 1px solid var(--border); color: var(--muted); font-size: 12px; font-weight: 600; padding: 6px 12px; border-radius: 8px; cursor: pointer; }
.ag-view.active { color: #fff; background: var(--teal); border-color: var(--teal); }
.ag-nav { display: flex; align-items: center; gap: 8px; }
.ag-label { font-size: 14px; font-weight: 600; min-width: 150px; text-align: center; text-transform: capitalize; }
.ag-filters { gap: 12px; }
.chk-i { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; color: var(--text); }
.ag-filters select { background: var(--bg2); border: 1px solid var(--border); color: var(--text); border-radius: 8px; padding: 7px 9px; font-size: 12px; }

.ag-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px; background: var(--border); border: 1px solid var(--border); border-radius: 10px; overflow: hidden; }
.ag-dow { background: var(--bg2); color: var(--muted); font-size: 11px; font-weight: 700; text-align: center; padding: 7px 0; min-width: 0; }
.ag-cell { background: var(--bg); min-height: 92px; padding: 5px; display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ag-cell.empty { background: var(--bg2); }
.ag-cell.today { background: rgba(72,158,169,.12); }
.ag-daynum { font-size: 11px; color: var(--muted); font-weight: 600; }
.ag-chip { background: var(--bg2); border-left: 3px solid var(--turq); border-radius: 4px; padding: 3px 6px; font-size: 11px; cursor: pointer; overflow: hidden; min-width: 0; }
.ag-chip:hover { background: var(--bg3); }
.ag-chip.done { opacity: .55; text-decoration: line-through; }
.ag-chip-t { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ag-chip-r { display: block; color: var(--muted); font-size: 10px; }
/* v213: a agenda mostra o D-2; a data fatal aparece como referencia discreta no card */
.ag-chip-f { display: block; color: #b45309; font-size: 10px; font-weight: 600; }
.ag-lfatal { display: inline-block; margin-left: 6px; color: #b45309; font-size: 11px; font-weight: 600; white-space: nowrap; }
.ag-week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.ag-wcol { background: var(--bg2); border: 1px solid var(--border); border-radius: 8px; padding: 8px; min-height: 160px; display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.ag-whead { font-size: 12px; font-weight: 700; color: var(--turq); margin-bottom: 4px; }
.ag-empty { color: var(--muted); font-size: 12px; }
.ag-day { display: flex; flex-direction: column; gap: 8px; }
.ag-day .ag-chip { font-size: 13px; padding: 10px 12px; }
.ag-list { display: flex; flex-direction: column; gap: 6px; }
.ag-lrow { display: flex; align-items: center; gap: 12px; background: var(--bg2); border: 1px solid var(--border); border-left: 3px solid var(--turq); border-radius: 8px; padding: 10px 12px; cursor: pointer; }
.ag-lrow:hover { background: var(--bg3); }
.ag-lrow.done { opacity: .6; }
.ag-ldate { font-size: 12px; color: var(--muted); width: 92px; flex-shrink: 0; }
.ag-ltitle { font-weight: 600; font-size: 13px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ag-lproc { font-size: 11px; color: var(--muted); width: 180px; flex-shrink: 0; }
.ag-lresp { font-size: 12px; color: var(--turq); width: 110px; flex-shrink: 0; }
.ag-lstatus { font-size: 11px; padding: 2px 8px; border-radius: 999px; background: var(--bg3); color: var(--muted); }
.ag-lstatus.s-concluida { color: var(--green); }

.prazo-modal { max-width: 640px; }
.atv-head { display: flex; align-items: baseline; gap: 10px; }
.atv-confirm { font-size: 11px; color: var(--turq); margin-left: auto; }
.atv-list { display: flex; flex-direction: column; gap: 4px; margin: 8px 0; }
.atv-item { display: flex; align-items: center; gap: 8px; background: var(--bg); border: 1px solid var(--border); border-radius: 7px; padding: 8px 10px; font-size: 13px; }
.atv-item.done .atv-txt { text-decoration: line-through; color: var(--muted); }
.atv-txt { flex: 1; }
.atv-resp { font-size: 11px; color: var(--turq); }
.atv-del { background: none; border: none; color: var(--muted); font-size: 16px; cursor: pointer; }
.atv-add { display: flex; gap: 8px; }
.atv-add select { flex: 1; background: var(--bg2); border: 1px solid var(--border); color: var(--text); border-radius: 8px; padding: 8px 10px; font-size: 13px; }

/* ---------------- Busca global ---------------- */
.ctrl-search { position: relative; flex: 1; max-width: 420px; }
.ctrl-search input { width: 100%; background: var(--bg2); border: 1px solid var(--border); color: var(--text); border-radius: 999px; padding: 9px 16px; font-size: 13px; }
.search-drop { position: absolute; top: 44px; left: 0; right: 0; background: var(--bg2); border: 1px solid var(--border); border-radius: 10px; box-shadow: 0 10px 30px rgba(0,0,0,.4); z-index: 30; max-height: 380px; overflow-y: auto; padding: 6px; }
.sd-group { font-size: 10px; font-weight: 700; color: var(--muted); text-transform: uppercase; padding: 8px 10px 4px; }
.sd-item { padding: 8px 10px; border-radius: 7px; cursor: pointer; font-size: 13px; display: flex; align-items: center; gap: 8px; }
.sd-item:hover { background: var(--bg3); }
.sd-sub { color: var(--muted); font-size: 11px; margin-left: auto; }
.sd-tag { font-size: 10px; color: var(--turq); background: var(--bg3); padding: 1px 7px; border-radius: 999px; }
/* v198: busca de fichas (inclui arquivadas) + botao reativar */
.sd-item.ficha .sd-titulo { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sd-item.ficha .sd-sub { margin-left: 8px; flex: 0 0 auto; }
.sd-tag.arq { color: #f0a94c; background: rgba(240,169,76,.14); }
.sd-tag.ok { color: #4ccf7e; background: rgba(76,207,126,.14); }
.sd-reativar { flex: 0 0 auto; margin-left: 8px; font-size: 11px; font-weight: 600; color: #fff; background: var(--turq); border: none; border-radius: 6px; padding: 3px 10px; cursor: pointer; }
.sd-reativar:hover { filter: brightness(1.08); }
.sd-reativar:disabled { opacity: .6; cursor: default; }
.sd-empty { padding: 12px; color: var(--muted); font-size: 13px; }

/* ---------------- Ficha do processo ---------------- */
/* v224: ficha do processo mais compacta, com os links logo abaixo do nome */
.ficha-modal { max-width: 860px; width: 92vw; max-height: 86vh; display: flex; flex-direction: column; }
.ficha-head { display: flex; justify-content: space-between; gap: 10px; padding: 12px 16px 8px; border-bottom: 1px solid var(--border); }
.ficha-head-main { flex: 1; }
.ficha-title-input { width: 100%; background: transparent; border: none; color: var(--text); font-size: 16px; font-weight: 700; padding: 2px 0; }
.ficha-title-input:focus { outline: none; border-bottom: 1px solid var(--turq); }
.ficha-sub { font-size: 12px; color: var(--muted); margin-top: 3px; display: flex; align-items: center; gap: 8px; }
.ficha-num { background: var(--bg2); border: 1px solid var(--border); color: var(--turq); border-radius: 6px; padding: 3px 8px; font-size: 12px; width: 175px; }
.ficha-metarow { display: flex; gap: 20px; margin-top: 8px; font-size: 12px; color: var(--muted); }
.ficha-inline { background: var(--bg2); border: 1px solid var(--border); color: var(--text); border-radius: 6px; padding: 3px 8px; font-size: 12px; }
.ficha-tabs { display: flex; gap: 4px; padding: 8px 20px 0; border-bottom: 1px solid var(--border); }
.ficha-tab { background: transparent; border: none; border-bottom: 2px solid transparent; color: var(--muted); font-weight: 600; font-size: 13px; padding: 8px 14px; cursor: pointer; }
.ficha-tab.active { color: var(--text); border-bottom-color: var(--turq); }
.ficha-body { padding: 18px 20px; overflow-y: auto; }
.ficha-cols { display: grid; grid-template-columns: 1.6fr 1fr; gap: 16px; }
.card-sec { background: var(--bg2); border: 1px solid var(--border); border-radius: 10px; padding: 14px 16px; margin-bottom: 14px; }
.card-sec h4 { margin: 0 0 12px; font-size: 13px; color: var(--turq); }
.sec-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.sec-head h4 { margin: 0; }
.ficha-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; }
.ficha-grid .col-2 { grid-column: 1 / -1; }
.ficha-grid label, .card-sec > label { display: block; font-size: 11px; color: var(--muted); margin-bottom: 3px; }
.ficha-grid input, .card-sec textarea { width: 100%; background: var(--bg); border: 1px solid var(--border); color: var(--text); border-radius: 7px; padding: 7px 9px; font-size: 13px; }
.mini-list { display: flex; flex-direction: column; gap: 6px; }
.mini-row { display: flex; gap: 8px; font-size: 12px; align-items: baseline; }
.mini-date { color: var(--muted); font-size: 11px; white-space: nowrap; }
.ficha-foot { display: flex; align-items: center; gap: 10px; padding: 14px 20px; border-top: 1px solid var(--border); }
.hist-list { display: flex; flex-direction: column; gap: 10px; }
.hist-row { display: flex; gap: 14px; background: var(--bg2); border: 1px solid var(--border); border-radius: 8px; padding: 12px 14px; }
.hist-date { color: var(--muted); font-size: 12px; white-space: nowrap; min-width: 84px; }
.hist-top { font-size: 12px; color: var(--turq); margin-bottom: 4px; }
.hist-txt { font-size: 13px; line-height: 1.5; white-space: pre-wrap; }
.hist-link { font-size: 12px; color: var(--turq); display: inline-block; margin-top: 6px; }

/* ---------------- Fluxos ---------------- */
.fluxo-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); gap: 14px; padding-top: 4px; }
.fx-card { position: relative; display: flex; gap: 14px; background: linear-gradient(180deg, var(--bg2), var(--bg)); border: 1px solid var(--border); border-radius: 14px; padding: 16px 18px; cursor: pointer; transition: transform .14s ease, border-color .14s ease, box-shadow .14s ease; overflow: hidden; }
.fx-card::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: linear-gradient(180deg, var(--teal), var(--turq)); opacity: .8; }
.fx-card:hover { transform: translateY(-2px); border-color: var(--turq); box-shadow: 0 10px 26px rgba(0,0,0,.32); }
.fx-index { flex-shrink: 0; width: 42px; height: 42px; border-radius: 12px; background: linear-gradient(135deg, var(--teal), var(--turq)); color: #fff; font-weight: 700; font-size: 14px; display: flex; align-items: center; justify-content: center; letter-spacing: .5px; }
.fx-content { flex: 1; min-width: 0; }
.fx-nome { margin: 2px 0 8px; font-size: 15px; font-weight: 650; line-height: 1.3; }
.fx-meta { display: flex; flex-wrap: wrap; gap: 6px; }
.fx-chip { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; color: var(--muted); background: var(--bg3); border: 1px solid var(--border); padding: 3px 10px; border-radius: 999px; }
.fx-chip.fx-resp { color: var(--turq); }
.fx-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--turq); }
.fx-conf { margin: 10px 0 0; font-size: 12px; font-style: italic; color: var(--muted); line-height: 1.5; padding-left: 10px; border-left: 2px solid var(--turq); }
.fx-edit { position: absolute; top: 14px; right: 16px; font-size: 11px; color: var(--turq); opacity: 0; transition: opacity .14s ease; }
.fx-card:hover .fx-edit { opacity: 1; }
@media (max-width: 820px) { .ficha-cols { grid-template-columns: 1fr; } .fluxo-list { grid-template-columns: 1fr; } }

/* ---------------- Notificações ---------------- */
.notif-wrap { position: relative; }
.notif-badge { position: absolute; top: -3px; right: -3px; background: var(--danger); color: #fff; font-size: 10px; font-weight: 700; min-width: 16px; height: 16px; border-radius: 999px; display: flex; align-items: center; justify-content: center; padding: 0 4px; }
.notif-drop { position: absolute; top: 42px; right: 0; width: 330px; background: var(--bg2); border: 1px solid var(--border); border-radius: 10px; box-shadow: 0 12px 32px rgba(0,0,0,.45); z-index: 40; max-height: 440px; overflow-y: auto; }
.notif-head { display: flex; align-items: center; justify-content: space-between; padding: 10px 12px; border-bottom: 1px solid var(--border); font-size: 12px; font-weight: 700; color: var(--muted); }
.notif-item { padding: 10px 12px; border-bottom: 1px solid var(--border); }
.notif-item.unread { background: rgba(72,158,169,.10); border-left: 3px solid var(--turq); }
.notif-txt { font-size: 13px; line-height: 1.45; }
.notif-time { font-size: 11px; color: var(--muted); margin-top: 3px; }
.notif-empty { padding: 18px; color: var(--muted); font-size: 13px; text-align: center; }
.chk-activity { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--text); margin-top: 8px; }

/* ---------------- Relatório de produtividade ---------------- */
.rel-presets { display: flex; gap: 4px; }
.rel-preset { background: transparent; border: 1px solid var(--border); color: var(--muted); font-size: 12px; font-weight: 600; padding: 6px 12px; border-radius: 999px; cursor: pointer; }
.rel-preset.active { color: #fff; background: var(--turq); border-color: var(--turq); }
.rel-tabela { margin-top: 6px; background: var(--bg2); border: 1px solid var(--border); border-radius: 12px; overflow: hidden; }
.rel-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.rel-table th { text-align: left; color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .4px; padding: 11px 14px; border-bottom: 1px solid var(--border); background: var(--bg3); }
.rel-table th:not(:first-child), .rel-table td:not(:first-child) { text-align: center; }
.rel-table td { padding: 11px 14px; border-bottom: 1px solid var(--border); }
.rel-table tbody tr:last-child td { border-bottom: none; }
.rel-table tbody tr:hover { background: var(--bg3); }
.rel-nome { font-weight: 600; }
.rel-total { font-weight: 700; color: var(--turq); }
/* v188: cabecalhos clicaveis para ordenar as listas do Guardiao */
.gd-sortable th.gd-th-sort { cursor: pointer; user-select: none; white-space: nowrap; transition: color .12s, background .12s; }
.gd-sortable th.gd-th-sort:hover { color: var(--text); background: var(--bg2); }
.gd-sortable th.gd-th-active { color: var(--turq); }
.gd-sortable th .gd-seta { font-size: 9px; opacity: .9; margin-left: 1px; }
.rel-table tfoot td { border-top: 2px solid var(--border); border-bottom: none; font-weight: 700; background: var(--bg3); }
.rel-nota { margin-top: 16px; max-width: 760px; line-height: 1.5; }

/* ---------------- Link PJe e processos associados ---------------- */
.ficha-sub { flex-wrap: wrap; gap: 10px; }
.ficha-numwrap, .ficha-linkwrap { display: inline-flex; align-items: center; gap: 6px; }
.ficha-linkin { width: 175px; } /* v224: link do PJe curto, os botões Abrir/Copiar fazem o resto */
#abrirUrl { text-decoration: none; }
.assoc-form { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.assoc-form input, .assoc-form select { background: var(--bg); border: 1px solid var(--border); color: var(--text); border-radius: 7px; padding: 7px 9px; font-size: 13px; }
.assoc-form #assocNum { flex: 1; min-width: 200px; }
.assoc-form #assocObs { flex: 1; min-width: 150px; }
.assoc-list { display: flex; flex-direction: column; gap: 6px; }
.assoc-row { display: flex; align-items: center; gap: 10px; background: var(--bg); border: 1px solid var(--border); border-radius: 8px; padding: 8px 12px; font-size: 13px; }
.assoc-tipo { font-size: 11px; font-weight: 700; color: var(--turq); background: var(--bg3); padding: 2px 9px; border-radius: 999px; white-space: nowrap; }
.assoc-num { flex: 1; min-width: 0; }
.assoc-num.link { color: var(--turq); cursor: pointer; text-decoration: underline; }
.assoc-obs { font-size: 11px; color: var(--muted); }
.assoc-del { background: none; border: none; color: var(--muted); font-size: 16px; cursor: pointer; line-height: 1; }

/* ====== v22 ====== */
/* 1) Layout em coluna para a barra de rolagem horizontal do quadro nunca ficar escondida abaixo da dobra */
#app { height: 100vh; display: flex; flex-direction: column; }
.topbar { flex: 0 0 auto; height: 56px; flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; align-items: center; scrollbar-width: none; cursor: grab; }
.topbar::-webkit-scrollbar { height: 0; display: none; }
.topbar.dragging { cursor: grabbing; }
.topbar > * { flex-shrink: 0; }
.topbar .brand { position: sticky; left: 0; z-index: 3; background: var(--bg2); padding-right: 10px; }
.list-tabs { flex: 0 0 auto; flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; }
.board { flex: 1 1 auto; height: auto; min-height: 0; }
.board::-webkit-scrollbar { height: 12px; }
.board::-webkit-scrollbar-thumb { background: var(--turq); border-radius: 8px; }
.board { scrollbar-color: var(--turq) transparent; }

/* 5) OABs monitoradas */
.oab-box { display: inline-flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.oab-chip { display: inline-flex; align-items: center; gap: 3px; background: var(--bg2); border: 1px solid var(--border); border-radius: 8px; padding: 3px 5px; }
.oab-chip input { background: var(--bg); border: 1px solid var(--border); border-radius: 6px; padding: 4px 6px; font-size: 12px; }
.oab-rm { background: none; border: none; color: var(--muted); font-size: 16px; line-height: 1; padding: 0 2px; cursor: pointer; }
.oab-rm:hover { color: #f87171; }

/* 7) Daily */
.daily-saved { min-height: 16px; color: var(--green); }
#dailyTexto { width: 100%; min-height: 180px; resize: vertical; }
.daily-row { padding: 10px 0; border-bottom: 1px solid var(--border); }
.daily-who { font-weight: 600; font-size: 13px; margin-bottom: 4px; display: flex; align-items: center; gap: 8px; }
.daily-text { font-size: 13px; color: var(--text); white-space: pre-wrap; }
.daily-tag { font-size: 10px; font-weight: 700; color: var(--green); background: var(--bg3); padding: 1px 7px; border-radius: 8px; }

/* mover e gerir listas (admin) */
.list-grip { cursor: grab; color: var(--muted); background: none; border: none; font-size: 14px; line-height: 1; padding: 0 2px; opacity: .55; flex-shrink: 0; }
.list-grip:hover { opacity: 1; color: var(--turq); }
.list-grip:active { cursor: grabbing; }
.list.drag-over-list { outline: 2px dashed var(--turq); outline-offset: -2px; }
.list.list-dragging { opacity: .5; }
.list-pop { position: fixed; z-index: 80; background: var(--bg2); border: 1px solid var(--border); border-radius: 10px; box-shadow: var(--shadow); padding: 6px; min-width: 220px; display: flex; flex-direction: column; gap: 2px; }
.list-pop button { text-align: left; background: none; border: none; color: var(--text); font-size: 13px; padding: 8px 10px; border-radius: 7px; }
.list-pop button:hover { background: var(--bg3); }
.list-pop button:disabled { opacity: .4; cursor: default; }
.list-pop button:disabled:hover { background: none; }
.list-pop button.danger { color: #f87171; }
.list-pop button.danger:hover { background: rgba(248, 113, 113, .12); }

/* ====== v23 ====== */
/* limite WIP estourado */
.list-count.over-wip { background: #7f1d1d; color: #fff; font-weight: 700; }

/* cor automatica por aba: faixa no topo do cabecalho */
.list-head { position: relative; border-top: 3px solid transparent; }
.list[data-group="0"] .list-head { border-top-color: #0A4D56; }
.list[data-group="1"] .list-head { border-top-color: #489EA9; }
.list[data-group="2"] .list-head { border-top-color: #f59e0b; }
.list[data-group="arquivo"] .list-head { border-top-color: #6b7280; }

/* dica de teclado dentro do menu da lista */
.list-pop-hint { font-size: 11px; color: var(--muted); padding: 6px 10px 2px; border-top: 1px solid var(--border); margin-top: 4px; }

/* botao Desfazer no toast */
.toast-action { margin-left: 12px; background: var(--turq); color: #04222a; border: none; font-weight: 700; font-size: 12px; padding: 4px 12px; border-radius: 7px; cursor: pointer; }
.toast-action:hover { filter: brightness(1.08); }

/* painel de arquivadas */
.arq-row { display: flex; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--border); }
.arq-name { font-weight: 600; font-size: 14px; }
.arq-count { font-size: 12px; color: var(--muted); }

/* ====== v24 ====== */
/* Tema claro, escolha por usuario */
body.light {
  --bg: #f4f6f8;
  --bg2: #ffffff;
  --bg3: #eef1f5;
  --panel: #ffffff;
  --border: #d8dee6;
  --text: #1b2430;
  --muted: #5b6675;
  --shadow: 0 8px 30px rgba(20,40,60,.14);
}
body.light .topbar, body.light .list-tabs { background: var(--bg2); }
body.light .card { background: var(--bg2); }
body.light .toast { box-shadow: var(--shadow); }

/* Botao flutuante de tema, no canto direito */
.theme-fab { position: fixed; right: 16px; bottom: 16px; z-index: 70; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--border); background: var(--bg2); color: var(--text); font-size: 20px; box-shadow: var(--shadow); display: flex; align-items: center; justify-content: center; }
.theme-fab:hover { border-color: var(--turq); }
/* botao de tema dentro das abas, a esquerda do Tudo */
.tab.theme-tab { margin-right: 6px; font-size: 15px; }

/* Coluna virtual de arquivadas (so admin, no Tudo) */
.list.list-archived { background: var(--bg3); border: 1px dashed var(--border); }
.list.list-archived .list-head { border-top-color: #6b7280; }
.arqcard { background: var(--bg2); border: 1px solid var(--border); border-radius: 8px; padding: 8px 10px; margin-bottom: 8px; }
.arqcard .arqcard-title { font-size: 13px; font-weight: 600; }
.arqcard .arqcard-src { font-size: 11px; color: var(--muted); margin: 2px 0 6px; }

/* Painel de comunicacao */
.comms-panel { position: fixed; top: 0; right: 0; width: min(960px, 96vw); height: 100vh; background: var(--panel); border-left: 1px solid var(--border); box-shadow: var(--shadow); z-index: 75; display: flex; flex-direction: column; }
.comms-head { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-bottom: 1px solid var(--border); }
.comms-head h2 { font-size: 16px; }
.comms-body { flex: 1; display: flex; min-height: 0; }
.comms-left { flex: 1.4; border-right: 1px solid var(--border); display: flex; flex-direction: column; min-width: 0; }
.comms-right { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.comms-call { display: flex; flex-direction: column; height: 100%; }
/* v155: reforma visual da chamada. Palco escuro elegante com o logo do escritorio discreto ao
   fundo, janelas com moldura suave e nome em destaque, barra de controles organizada. */
.call-bar { display: flex; flex-wrap: wrap; gap: 6px; padding: 10px 12px; border-bottom: 1px solid var(--border); background: color-mix(in srgb, var(--bg2) 88%, transparent); backdrop-filter: blur(6px); align-items: center; }
.call-bar .btn { border-radius: 10px; }
.call-bar #callLeave, .call-bar .danger { margin-left: auto; }
.comms-call { position: relative; }
.video-grid { flex: 1; display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 12px; padding: 16px; overflow-y: auto; align-content: start; position: relative; background: radial-gradient(1200px 500px at 50% -10%, rgba(72,158,169,.10), transparent 60%), linear-gradient(180deg, #0b1119, #0d141d); }
.video-grid::before { content: ''; position: absolute; inset: 0; background: url('img/bg-logo-escuro.png') center 46% / min(46%, 320px) no-repeat; opacity: .07; pointer-events: none; }
.video-grid:empty::before { opacity: .14; }
.video-tile { position: relative; background: #05090e; border-radius: 14px; overflow: hidden; aspect-ratio: 16 / 10; border: 1px solid rgba(255,255,255,.07); box-shadow: 0 8px 24px rgba(0,0,0,.35); transition: box-shadow .18s ease, transform .18s ease, border-color .18s ease; }
.video-tile:hover { border-color: rgba(72,158,169,.45); box-shadow: 0 10px 28px rgba(0,0,0,.45); }
.video-tile video { width: 100%; height: 100%; object-fit: cover; background: #05090e; }
.video-tile .vt-name { position: absolute; left: 10px; bottom: 8px; font-size: 12px; font-weight: 600; letter-spacing: .01em; color: #fff; background: linear-gradient(90deg, rgba(4,18,24,.78), rgba(4,18,24,.5)); border: 1px solid rgba(255,255,255,.10); padding: 3px 10px; border-radius: 999px; backdrop-filter: blur(4px); }
.video-tile .vt-mic, .video-tile .vt-camoff { position: absolute; top: 8px; font-size: 14px; background: rgba(4,10,14,.7); border: 1px solid rgba(255,255,255,.10); color: #fff; border-radius: 8px; padding: 2px 7px; display: none; backdrop-filter: blur(4px); }
.video-tile .vt-mic { right: 10px; }
.video-tile .vt-camoff { right: 10px; top: 36px; }
.video-tile.mic-off .vt-mic { display: block; color: #fca5a5; }
.video-tile.cam-off .vt-camoff { display: block; }
.video-tile.screen { border-color: rgba(72,158,169,.55); }
.video-tile.audio-only { display: flex; align-items: center; justify-content: center; background: radial-gradient(circle at 50% 42%, #12202b, #0a1219); }
.video-tile.audio-only .vt-avatar { width: 64px; height: 64px; border-radius: 50%; background: var(--turq); color: #04222a; font-weight: 700; font-size: 24px; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 6px rgba(72,158,169,.15); }
.comms-online { padding: 10px 12px; border-bottom: 1px solid var(--border); }
.comms-label { font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); }
.online-list { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.online-chip { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; background: var(--bg3); border: 1px solid var(--border); border-radius: 14px; padding: 3px 9px; }
.online-chip .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--green); }
.online-chip.incall .dot { background: var(--turq); box-shadow: 0 0 0 3px rgba(72,158,169,.25); }
.chat-list { flex: 1; overflow-y: auto; padding: 12px; display: flex; flex-direction: column; gap: 8px; }
.chat-msg { font-size: 13px; }
.chat-msg .cm-who { font-weight: 600; color: var(--turq); margin-right: 6px; }
.chat-msg .cm-time { font-size: 10px; color: var(--muted); margin-left: 6px; }
.chat-msg .cm-text { white-space: pre-wrap; }
.chat-input { display: flex; gap: 6px; padding: 10px 12px; border-top: 1px solid var(--border); }
.chat-input input { flex: 1; }
@media (max-width: 760px) { .comms-body { flex-direction: column; } .comms-left { border-right: none; border-bottom: 1px solid var(--border); } }

/* ====== v25 ====== */
/* self-view da camera espelhado (natural, como espelho); tela e remotos nunca espelham */
.video-tile.local-cam.mirrored video { transform: scaleX(-1); }
.video-tile.local-cam video { transform: none; }
.video-tile.screen video, .video-tile.remote video { transform: none; }
.video-tile.cam-off { background: #11161d; }
.video-tile.cam-off video { display: none; }
.video-tile.cam-off .vt-avatar { display: flex; }
.vt-avatar { display: none; position: absolute; inset: 0; margin: auto; width: 72px; height: 72px; border-radius: 50%; background: var(--turq); color: #04222a; font-weight: 700; font-size: 26px; align-items: center; justify-content: center; }

/* chamada recebida */
.ring-card .ring-emoji { font-size: 40px; }
.ring-actions { display: flex; gap: 10px; justify-content: center; margin-top: 14px; }

/* janela flutuante da chamada (mini, arrastavel) */
.float-call { position: fixed; right: 16px; bottom: 72px; width: 280px; background: #0b0f14; border: 1px solid var(--border); border-radius: 12px; box-shadow: var(--shadow); z-index: 78; overflow: hidden; }
.float-head { display: flex; align-items: center; justify-content: space-between; padding: 6px 10px; background: var(--bg2); cursor: move; font-size: 12px; }
.float-head button { background: none; border: none; color: var(--text); cursor: pointer; font-size: 14px; }
.float-videos { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; background: #000; }
.float-videos video { width: 100%; height: 90px; object-fit: cover; background: #000; }
.float-videos video.local-cam.mirrored { transform: scaleX(-1); }

/* destinatario do chat */
.chat-to-row { display: flex; gap: 6px; padding: 8px 12px 0; align-items: center; }
.chat-to-row select { flex: 1; }

/* comentarios da ficha */
.ficha-comments { margin-top: 12px; }
.ficha-comments > label { font-size: 12px; color: var(--muted); display: block; margin-bottom: 6px; }
.proc-comments { display: flex; flex-direction: column; gap: 6px; margin-bottom: 8px; max-height: 220px; overflow-y: auto; }
.pc-row { background: var(--bg2); border: 1px solid var(--border); border-radius: 8px; padding: 6px 9px; font-size: 13px; }
.pc-meta { font-size: 11px; color: var(--muted); margin-bottom: 2px; display: flex; gap: 8px; align-items: center; }
.pc-del { margin-left: auto; background: none; border: none; color: var(--muted); cursor: pointer; }
.pc-del:hover { color: #f87171; }

/* alertas pessoais */
.alerta-form { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
.alerta-row { display: flex; align-items: center; gap: 8px; padding: 10px 0; border-bottom: 1px solid var(--border); }
.alerta-main { flex: 1; }
.alerta-tit { font-weight: 600; font-size: 14px; }
.alerta-sub { font-size: 12px; color: var(--muted); }
.alerta-off { opacity: .5; }

/* ===== Mobile responsivo (auto em telas pequenas e quando o admin liga) ===== */
@media (max-width: 760px) {
  .topbar { flex-wrap: wrap; height: auto; gap: 6px; padding: 8px; }
  .topbar .btn { padding: 6px 9px; font-size: 13px; }
  .list { min-width: 82vw; }
  .modal { width: 96vw; max-width: 96vw; }
  .ficha-modal { width: 98vw; }
  .ficha-cols { flex-direction: column; }
  .comms-panel { width: 100vw; }
  .theme-fab { bottom: 12px; right: 12px; }
}
body.mobile .topbar { flex-wrap: wrap; height: auto; gap: 6px; padding: 8px; }
body.mobile .topbar .btn { padding: 6px 9px; font-size: 13px; }
/* modo mobile so estica as colunas em tela estreita; no desktop segue o kanban normal */
@media (max-width: 760px) { body.mobile .list { min-width: 82vw; } }
body.mobile .modal { width: 96vw; max-width: 96vw; }
body.mobile .ficha-cols { flex-direction: column; }
body.mobile .comms-panel { width: 100vw; }
body.mobile .comms-body { flex-direction: column; }

/* ====== v26 ====== */
/* badge de nao lidas no monitor do admin */
#chatMonitor.has-unread::after { content: '●'; color: #f87171; margin-left: 4px; font-size: 10px; }
#chatMonitor.active { background: var(--turq); color: #04222a; }

/* Mobile responsivo, caprichado */
@media (max-width: 820px) {
  .topbar { padding: 0 10px; gap: 6px; }
  .topbar .brand-name { font-size: 14px; }
  .topbar .btn, .topbar button { padding: 7px 10px; font-size: 13px; }
  .topbar .user-box { margin-left: auto; }
  .list { min-width: 86vw; scroll-snap-align: start; }
  .board { scroll-snap-type: x mandatory; gap: 10px; padding: 10px; }
  .modal, .small-modal { width: 96vw; max-width: 96vw; }
  .ficha-modal { width: 98vw; max-width: 98vw; }
  .ficha-cols { flex-direction: column; gap: 14px; }
  .ficha-grid { grid-template-columns: 1fr 1fr; }
  .comms-panel { width: 100vw; }
  .comms-body { flex-direction: column; }
  .comms-left { border-right: none; border-bottom: 1px solid var(--border); }
  .video-grid { grid-template-columns: 1fr 1fr; }
  .side-panel { width: 100vw; }
  .theme-fab { width: 40px; height: 40px; bottom: 12px; right: 12px; }
  .float-call { width: 60vw; right: 8px; bottom: 64px; }
}
@media (max-width: 480px) {
  .ficha-grid { grid-template-columns: 1fr; }
  .video-grid { grid-template-columns: 1fr; }
  .call-bar { gap: 4px; }
  .call-bar .btn { flex: 1 1 40%; }
}
/* modo mobile forcado pelo admin: aplica o mesmo em qualquer largura */
body.mobile .topbar { padding: 0 10px; gap: 6px; }
body.mobile .topbar .btn, body.mobile .topbar button { padding: 7px 10px; font-size: 13px; }
/* colunas so ocupam a tela inteira em telas estreitas de verdade; no desktop mantem os 272px */
@media (max-width: 820px) {
  body.mobile .list { min-width: 86vw; scroll-snap-align: start; }
  body.mobile .board { scroll-snap-type: x mandatory; }
}
body.mobile .modal { width: 96vw; max-width: 96vw; }
body.mobile .ficha-cols { flex-direction: column; }
body.mobile .ficha-grid { grid-template-columns: 1fr 1fr; }
body.mobile .comms-panel { width: 100vw; }
body.mobile .comms-body { flex-direction: column; }
body.mobile .video-grid { grid-template-columns: 1fr 1fr; }
body.mobile .side-panel { width: 100vw; }

/* ====== v27 ====== */
/* status estilo Discord */
.status-menu { position: relative; }
.status-current { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; background: var(--bg3); border: 1px solid var(--border); border-radius: 14px; padding: 4px 10px; font-size: 12px; }
.status-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--muted); flex-shrink: 0; }
.status-dot.disponivel { background: #22c55e; }
.status-dot.ausente { background: #eab308; }
.status-dot.naoperturbar { background: #ef4444; }
.status-dot.invisivel { background: #6b7280; }
.status-drop { position: absolute; top: 110%; left: 0; background: var(--bg2); border: 1px solid var(--border); border-radius: 10px; box-shadow: var(--shadow); padding: 6px; z-index: 90; min-width: 230px; display: none; }
.status-drop.open { display: block; }
.status-opt { display: flex; align-items: flex-start; gap: 8px; padding: 8px 10px; border-radius: 8px; cursor: pointer; }
.status-opt:hover { background: var(--bg3); }
.status-opt .so-main { display: flex; flex-direction: column; }
.status-opt .so-title { font-size: 13px; font-weight: 600; }
.status-opt .so-sub { font-size: 11px; color: var(--muted); }
/* dot de status nos chips de online */
.online-chip .dot.ausente { background: #eab308; }
.online-chip .dot.naoperturbar { background: #ef4444; }
.online-chip .dot.invisivel { background: #6b7280; }
.online-chip.invis { opacity: .65; font-style: italic; }
/* follow-up no card */
.fup-badge { background: #3730a3; color: #fff; font-size: 10px; font-weight: 700; padding: 1px 7px; border-radius: 8px; }

/* ====== v28 ====== */
/* itens reordenaveis + menu suspenso de excedentes no topo */
.tb-items { display: inline-flex; align-items: center; gap: 6px; overflow: hidden; flex: 0 1 auto; min-width: 0; }
.tb-item.tb-dragging { opacity: .5; }
.tb-item.tb-over { box-shadow: inset 0 -3px 0 var(--turq); }
.tb-more-wrap { position: relative; flex: 0 0 auto; }
.tb-more-drop { position: absolute; top: 110%; right: 0; background: var(--bg2); border: 1px solid var(--border); border-radius: 10px; box-shadow: var(--shadow); padding: 6px; display: none; flex-direction: column; gap: 2px; min-width: 200px; z-index: 90; }
.tb-more-drop.open { display: flex; }
.tb-more-drop .btn { text-align: left; }
#tbMore { display: none; }
#tbMore.show { display: inline-flex; }

/* botao de desfoque ativo */
#callBlur.active { background: var(--turq); color: #04222a; }

/* tile: botao maximizar (tela cheia) */
.video-tile .vt-max { position: absolute; left: 8px; top: 6px; font-size: 13px; background: rgba(0,0,0,.55); color: #fff; border: none; border-radius: 6px; padding: 1px 7px; cursor: pointer; opacity: 0; transition: opacity .15s; }
.video-tile:hover .vt-max { opacity: 1; }

/* palco: apresentacao em tela cheia, participantes flutuando */
.stage { position: fixed; inset: 0; background: #000; z-index: 95; display: flex; align-items: center; justify-content: center; }
.stage-main { width: 100%; height: 100%; object-fit: contain; background: #000; }
.stage-floats { position: absolute; right: 14px; bottom: 14px; display: flex; flex-direction: column; gap: 8px; max-height: 80vh; overflow: hidden; }
.stage-floats video { width: 180px; height: 110px; object-fit: cover; border-radius: 10px; border: 1px solid rgba(255,255,255,.25); background: #111; box-shadow: 0 6px 20px rgba(0,0,0,.5); }
.stage-floats video.local-cam.mirrored { transform: scaleX(-1); }
.stage-exit { position: absolute; left: 14px; top: 14px; background: rgba(0,0,0,.6); color: #fff; border: 1px solid rgba(255,255,255,.3); border-radius: 8px; padding: 6px 12px; cursor: pointer; }
@media (max-width: 760px) { .stage-floats video { width: 110px; height: 70px; } }

/* ====== v29: menu volta ao arrastar (sem dropdown/reorder) ====== */
.tb-more-wrap { display: none !important; }
.tb-items { display: inline-flex; align-items: center; gap: 6px; flex: 0 0 auto; overflow: visible; min-width: 0; }
.topbar { cursor: grab; }
.topbar.dragging { cursor: grabbing; }

/* controles de mic/camera dentro da janela de video (tile local) */
.vt-ctrls { position: absolute; bottom: 8px; left: 50%; transform: translateX(-50%); display: flex; gap: 8px; opacity: 0; transition: opacity .15s; }
.video-tile:hover .vt-ctrls { opacity: 1; }
.vt-btn { width: 34px; height: 34px; border-radius: 50%; border: none; background: rgba(0,0,0,.6); color: #fff; cursor: pointer; font-size: 15px; display: flex; align-items: center; justify-content: center; }
.vt-btn:hover { background: rgba(0,0,0,.8); }
.vt-btn.off { background: #ef4444; }

/* historico da tarefa */
.card-history { display: flex; flex-direction: column; gap: 4px; max-height: 240px; overflow-y: auto; }
.ch-row { display: grid; grid-template-columns: 116px 150px 1fr; gap: 8px; align-items: baseline; font-size: 12px; padding: 4px 6px; border-bottom: 1px solid var(--border); }
.ch-when { color: var(--muted); }
.ch-tag { font-weight: 600; }
.ch-txt { color: var(--text); }
.hist-row.hist-manual { border-left: 3px solid var(--turq); }
.hist-del { background: none; border: none; color: var(--muted); cursor: pointer; font-size: 14px; }
.hist-del:hover { color: #f87171; }
@media (max-width: 760px) { .ch-row { grid-template-columns: 1fr; gap: 2px; } }

/* ====== v30 ====== */
/* lista de processos estilo Astrea (classes proprias, sem colidir com a ficha) */
.plist { display: flex; flex-direction: column; }
.plist-row { display: grid; grid-template-columns: 2.6fr 1.4fr 1.8fr 1.3fr 0.9fr 0.6fr; gap: 14px; align-items: start; padding: 12px 14px; border-bottom: 1px solid var(--border); }
.plist-head { display: grid; grid-template-columns: 2.6fr 1.4fr 1.8fr 1.3fr 0.9fr 0.6fr; gap: 14px; padding: 10px 14px; font-size: 11px; text-transform: uppercase; letter-spacing: .4px; color: var(--muted); border-bottom: 1px solid var(--border); position: sticky; top: 0; background: var(--bg); z-index: 1; }
.plist-row { cursor: pointer; }
.plist-row:hover { background: var(--bg2); }
.pl-title-main { font-weight: 600; font-size: 14px; line-height: 1.3; }
.pl-sub { font-size: 12px; color: var(--muted); margin-top: 3px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.pl-cli, .pl-resp { font-size: 13px; }
.pl-acao-main { font-size: 13px; }
.pl-acao-sub { font-size: 12px; color: var(--muted); margin-top: 2px; }
.pl-mov { font-size: 13px; color: var(--muted); }
.pl-tag { font-size: 10px; padding: 1px 7px; border-radius: 6px; }
.pl-tag.on { background: rgba(34,197,94,.18); color: #22c55e; }
.pl-tag.off { background: rgba(148,163,184,.18); color: var(--muted); }
.pl-num { color: var(--muted); }
@media (max-width: 760px) {
  .plist-head { display: none; }
  .plist-row { grid-template-columns: 1fr; gap: 3px; }
  .pl-cli::before { content: 'Cliente: '; color: var(--muted); }
  .pl-resp::before { content: 'Resp.: '; color: var(--muted); }
}

/* criador de peças */
.peca-form { display: flex; flex-direction: column; gap: 10px; }
.peca-result { margin-top: 12px; padding: 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg2); }
.peca-result a { color: var(--turq); font-weight: 600; }
.pecas-cfg label { font-size: 12px; color: var(--muted); display: block; margin: 10px 0 4px; }
.pecas-cfg textarea { width: 100%; min-height: 90px; font-family: monospace; font-size: 11px; }
.sug-list { display: flex; flex-direction: column; }
.sug-item { padding: 6px 8px; cursor: pointer; border-radius: 6px; font-size: 13px; }
.sug-item:hover { background: var(--bg3); }

/* ====== v33 ====== */
/* ordenacao por coluna */
.pl-sort { cursor: pointer; user-select: none; }
.pl-sort:hover { color: var(--text); }
/* cores por dias sem movimentacao, cada vez mais urgente */
.plist-row.pl-d30 { box-shadow: inset 4px 0 0 #eab308; }
.plist-row.pl-d45 { box-shadow: inset 4px 0 0 #f97316; background: rgba(249,115,22,.05); }
.plist-row.pl-d60 { box-shadow: inset 4px 0 0 #ef4444; background: rgba(239,68,68,.08); }
/* encerrado: cinza claro */
.plist-row.pl-encerrado { opacity: .6; }
.plist-row.pl-encerrado .pl-title-main, .plist-row.pl-encerrado .pl-cli, .plist-row.pl-encerrado .pl-acao-main { color: var(--muted); }
.pl-tag.enc { background: rgba(148,163,184,.20); color: var(--muted); }

/* ====== v34 ====== */
.pager-per { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted); margin-right: auto; }
.pager-per select { background: var(--bg2); color: var(--text); border: 1px solid var(--border); border-radius: 8px; padding: 4px 8px; }

/* ====== v37: protecao de conteudo ====== */
body { -webkit-user-select: none; -moz-user-select: none; user-select: none; }
input, textarea, select, [contenteditable="true"], .copiavel, .copiavel * {
  -webkit-user-select: text; -moz-user-select: text; user-select: text;
}
img { -webkit-user-drag: none; user-drag: none; }

/* matriz de permissoes da Equipe */
.perm-table { border-collapse: collapse; font-size: 12px; }
.perm-table th, .perm-table td { border: 1px solid var(--border); padding: 6px 8px; text-align: center; }
.perm-table th:first-child, .perm-table td.perm-name { text-align: left; white-space: nowrap; color: var(--text); }
.perm-table .perm-self { color: var(--muted); }
.perm-table input[type=checkbox] { width: 16px; height: 16px; cursor: pointer; }

/* v38: agenda da equipe, esconde so as outras abas do modulo Processos. A equipe edita a agenda. */
body.equipe-agenda .ctrl-tabs { display: none !important; }
body.equipe-agenda .ctrl-head .ctrl-title-extra { display: none !important; }
.prazo-log { font-size: 12px; color: var(--muted); }
.prazo-log .pl-orig { color: var(--text); margin-bottom: 6px; }
.prazo-log .pl-list { display: flex; flex-direction: column; gap: 4px; max-height: 160px; overflow: auto; }
.prazo-log .pl-row { display: grid; grid-template-columns: 96px 110px 64px 1fr; gap: 6px; align-items: baseline; }
.prazo-log .pl-when { color: var(--muted); }
.prazo-log .pl-who { color: var(--text); font-weight: 600; }
.prazo-log .pl-act { color: var(--turquoise, #489EA9); }
.prazo-log .pl-det { color: var(--muted); }

/* v38: indicador de presenca na chamada (mostra que ha gente junto, mesmo so no audio) */
.call-presence { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; color: var(--turquoise, #489EA9); padding: 2px 8px; border-radius: 999px; background: rgba(72,158,169,0.12); }
.stage-presence { position: absolute; top: 14px; left: 14px; z-index: 5; font-size: 13px; font-weight: 700; color: #fff; padding: 6px 12px; border-radius: 999px; background: rgba(10,77,86,0.78); backdrop-filter: blur(4px); }
.stage-presence.alone { opacity: 0.7; }
.float-presence { font-size: 11px; font-weight: 600; color: var(--turquoise, #489EA9); margin-left: 6px; }
.stage-floats video { cursor: grab; }

/* v38: acoes de ligar por pessoa na lista de online, estilo Discord */
.online-chip { display: inline-flex; align-items: center; gap: 6px; }
.online-chip .oc-name { cursor: pointer; }
.online-chip.me .oc-name { cursor: default; }
.online-chip .oc-act { opacity: 0; border: 0; background: transparent; cursor: pointer; font-size: 13px; padding: 0 2px; line-height: 1; transition: opacity .12s, transform .12s; }
.online-chip:hover .oc-act { opacity: 0.85; }
.online-chip .oc-act:hover { opacity: 1; transform: scale(1.18); }
@media (hover: none) { .online-chip .oc-act { opacity: 0.75; } }

/* Chamada recebida por cima de tudo, com destaque pulsante */
#ringModal { z-index: 9999; background: rgba(0,0,0,.78); }
#ringModal .modal { width: 420px; text-align: center; animation: ringPulse 1.1s ease-in-out infinite; border-color: var(--accent, #2bb3c0); }
#ringModal .modal-body { padding: 26px 22px; }
#ringModal #ringName { font-size: 22px; margin: 4px 0 2px; }
#ringModal .ring-actions { display: flex; gap: 12px; justify-content: center; margin-top: 18px; }
#ringModal .ring-actions .btn { min-width: 130px; padding: 12px 16px; font-size: 15px; }
@keyframes ringPulse { 0%,100% { box-shadow: 0 0 0 0 rgba(43,179,192,.55); } 50% { box-shadow: 0 0 0 14px rgba(43,179,192,0); } }

/* Caixa de chamando (lado de quem liga), por cima de tudo, igual a de chamada recebida */
#callingModal { z-index: 9999; background: rgba(0,0,0,.78); }
#callingModal .modal { width: 420px; text-align: center; border-color: var(--accent, #2bb3c0); }
#callingModal .modal-body { padding: 26px 22px; }
#callingModal #callingName { font-size: 22px; margin: 4px 0 2px; }
#callingModal .ring-actions { display: flex; gap: 12px; justify-content: center; margin-top: 18px; }
#callingModal .ring-actions .btn { min-width: 150px; padding: 12px 16px; font-size: 15px; }
.ring-emoji-out { animation: ringPulse 1.1s ease-in-out infinite; border-radius: 50%; }

/* Caixinha de online no canto inferior direito, arrastavel, abaixo das outras janelas em prioridade */
.online-dock { position: fixed; right: 16px; bottom: 16px; width: 324px; max-height: 60vh; background: var(--panel, #0f141b); border: 1px solid var(--border, #243040); border-radius: 14px; box-shadow: 0 12px 32px rgba(0,0,0,.45); z-index: 60; overflow: hidden; display: flex; flex-direction: column; }
.online-dock.collapsed .od-body { display: none; }
.od-head { display: flex; align-items: center; justify-content: space-between; padding: 10px 12px; cursor: grab; user-select: none; border-bottom: 1px solid var(--border, #243040); }
.online-dock.collapsed .od-head { border-bottom: none; }
.od-title { display: inline-flex; align-items: center; gap: 7px; font-weight: 600; font-size: 14px; }
.od-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--green, #34d399); box-shadow: 0 0 0 3px rgba(52,211,153,.18); }
.od-count { color: var(--muted, #8aa0b4); font-weight: 600; }
.od-collapse { background: none; border: none; color: var(--muted, #8aa0b4); font-size: 16px; cursor: pointer; padding: 0 4px; }
.od-body { overflow-y: auto; padding: 6px; display: flex; flex-direction: column; gap: 3px; }
.od-row { display: flex; align-items: center; gap: 9px; padding: 6px 8px; border-radius: 9px; cursor: pointer; }
.od-row:hover { background: var(--bg3, #1a2330); }
.od-row.me { cursor: default; opacity: .9; }
.od-row.me:hover { background: transparent; }
.od-av { width: 30px; height: 30px; min-width: 30px; border-radius: 50%; background: var(--turq, #2bb3c0); color: #04222a; font-weight: 700; font-size: 13px; display: flex; align-items: center; justify-content: center; position: relative; }
.od-av .od-sdot { position: absolute; right: -1px; bottom: -1px; width: 9px; height: 9px; border-radius: 50%; border: 2px solid var(--panel, #0f141b); background: var(--green, #34d399); }
.od-av .od-sdot.ausente { background: #eab308; } .od-av .od-sdot.naoperturbar { background: #ef4444; } .od-av .od-sdot.invisivel { background: #6b7280; }
.od-name { flex: 1; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.od-acts { display: flex; gap: 4px; }
.od-act { background: var(--bg3, #1a2330); border: 1px solid var(--border, #243040); color: var(--text, #e6edf3); border-radius: 8px; padding: 3px 7px; font-size: 13px; cursor: pointer; }
.od-act:hover { background: var(--turq, #2bb3c0); color: #04222a; }
@media (max-width: 760px) { .online-dock { width: 70vw; right: 8px; bottom: 8px; } }

/* Botoes de moderacao do admin sobre cada bloco de video remoto */
.vt-admin { position: absolute; left: 50%; transform: translateX(-50%); bottom: 8px; display: flex; gap: 6px; opacity: 0; transition: opacity .15s ease; z-index: 4; }
.video-tile:hover .vt-admin { opacity: 1; }
.vt-admin-btn { background: rgba(8,12,18,.82); color: #fff; border: 1px solid rgba(255,255,255,.18); border-radius: 8px; padding: 4px 8px; font-size: 13px; cursor: pointer; line-height: 1; }
.vt-admin-btn:hover { background: var(--danger, #ef4444); border-color: transparent; }
.vt-admin-btn:first-child:hover { background: var(--turq, #2bb3c0); color: #04222a; }
@media (max-width: 760px) { .vt-admin { opacity: 1; } }

/* ===== Construtor de automacoes (modelo ClickUp) ===== */
.ab-modal { width: 640px; }
.ab-sec-head { display: flex; align-items: center; justify-content: space-between; margin-top: 14px; }
.ab-sec-head label { margin: 0; }
.ab-list { margin-top: 6px; display: flex; flex-direction: column; gap: 8px; }
.ab-row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; background: var(--bg2); border: 1px solid var(--border); border-radius: 10px; padding: 8px; }
.ab-row select, .ab-row input { background: var(--bg3); border: 1px solid var(--border); color: var(--text); border-radius: 8px; padding: 7px 8px; font-size: 13px; }
.ab-row .ab-val, .ab-row .ab-field, .ab-row .ab-op, .ab-row .ab-act { flex: 1 1 120px; min-width: 110px; }
.ab-row .ab-msg { flex: 1 1 160px; min-width: 120px; }
.ab-row .ab-x { flex: 0 0 auto; margin-left: auto; padding: 4px 9px; }
.auto-rule { display: flex; flex-direction: column; gap: 2px; margin: 6px 0; font-size: 12.5px; color: var(--muted); }
.auto-rule em { color: var(--accent); font-style: normal; font-weight: 600; margin-right: 4px; }
.auto-err { color: var(--danger); font-size: 12px; margin: 4px 0; }
.auto-sep { border: none; border-top: 1px solid var(--border); margin: 18px 0 10px; }
.err-text { color: var(--danger); font-size: 12.5px; min-height: 16px; margin-top: 8px; }

/* ===== Prazos sugeridos (modelo eLaw) ===== */
.sug-badge { display: inline-block; min-width: 18px; padding: 0 5px; margin-left: 4px; border-radius: 9px; background: var(--danger); color: #fff; font-size: 11px; line-height: 18px; text-align: center; }
.sug-filter { background: var(--bg3); border: 1px solid var(--border); color: var(--muted); border-radius: 8px; padding: 5px 12px; font-size: 13px; cursor: pointer; }
.sug-filter.active { background: var(--accent); border-color: var(--accent); color: #fff; }
.sug-list { display: flex; flex-direction: column; gap: 10px; padding: 4px 2px; }
.sug-card { background: var(--bg2); border: 1px solid var(--border); border-radius: 12px; padding: 12px 14px; }
.sug-card.sug-done { opacity: .7; }
.sug-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.sug-tipo { font-weight: 600; color: var(--text); }
.sug-conf { font-size: 11px; padding: 1px 7px; border-radius: 8px; border: 1px solid var(--border); }
.conf-alta { color: #7fd88b; border-color: #2e5b34; }
.conf-media { color: #e9c46a; border-color: #6b571f; }
.conf-baixa { color: var(--muted); }
.sug-status { font-size: 11px; padding: 1px 7px; border-radius: 8px; background: var(--bg3); color: var(--muted); text-transform: capitalize; }
.sug-trib { margin-left: auto; font-size: 12px; color: var(--muted); }
.sug-proc { margin: 6px 0 2px; font-size: 13px; color: var(--text); }
.sug-warn { color: var(--danger); font-size: 12px; }
.sug-base { font-size: 12px; color: var(--muted); margin: 2px 0; }
.sug-trecho { font-size: 12px; color: var(--muted); background: var(--bg3); border-radius: 8px; padding: 7px 9px; margin: 6px 0; max-height: 78px; overflow: auto; }
.sug-link { font-size: 12px; color: var(--accent); }
.sug-form { display: flex; gap: 10px; flex-wrap: wrap; margin: 10px 0 6px; }
.sug-f { flex: 1 1 180px; }
.sug-f.narrow { flex: 0 0 150px; }
.sug-f label { margin: 0 0 4px; }
.sug-f input, .sug-f select { width: 100%; background: var(--bg3); border: 1px solid var(--border); color: var(--text); border-radius: 8px; padding: 7px 8px; font-size: 13px; }
.sug-acts { display: flex; gap: 8px; margin-top: 4px; }
.sug-decidida { font-size: 12px; color: var(--muted); margin-top: 8px; }

/* conector E entre condicoes da automacao */
.ab-and { align-self: flex-start; font-size: 11px; font-weight: 700; color: var(--accent); background: var(--bg3); border: 1px solid var(--border); border-radius: 8px; padding: 1px 8px; margin: 2px 0 0 4px; }

/* ===== Auditoria (Fase 1 seguranca) ===== */
.audit-filtros { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0; }
.audit-filtros select, .audit-filtros input { background: var(--bg3); border: 1px solid var(--border); color: var(--text); border-radius: 8px; padding: 7px 8px; font-size: 13px; }
.audit-filtros #auditQ { flex: 1 1 160px; min-width: 120px; }
.audit-list { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; }
.au-row { background: var(--bg2); border: 1px solid var(--border); border-radius: 10px; padding: 8px 10px; }
.au-top { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.au-user { font-weight: 600; font-size: 12.5px; color: var(--text); }
.au-tag { font-size: 11px; padding: 1px 7px; border-radius: 8px; background: var(--bg3); color: var(--muted); }
.au-when { margin-left: auto; font-size: 12px; color: var(--muted); }
.au-sum { font-size: 12.5px; color: var(--muted); margin-top: 3px; }

/* ===== Lixeira ===== */
.lix-acts { display: flex; gap: 8px; margin-top: 8px; }
.btn.danger { background: #7a2b2b; border-color: #9a3b3b; color: #ffe; }
.btn.danger:hover { background: #8f3333; }

/* ===== Perfis de acesso ===== */
.perfis-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.sep { border: none; border-top: 1px solid var(--border); margin: 14px 0; }
.perfil-row { display: flex; align-items: center; gap: 8px; margin: 8px 0; flex-wrap: wrap; }
.perfil-row select { background: var(--bg3); border: 1px solid var(--border); color: var(--text); border-radius: 8px; padding: 6px 8px; }
.perfil-card { background: var(--bg2); border: 1px solid var(--border); border-radius: 10px; padding: 10px; margin-bottom: 8px; }
.perfil-card.novo { border-style: dashed; }
.perfil-card input { width: 100%; background: var(--bg3); border: 1px solid var(--border); color: var(--text); border-radius: 8px; padding: 6px 8px; margin: 4px 0; }
.perfil-perms { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 6px 0; }
.perfil-perms .chk { font-size: 12.5px; }

/* ===== Segurança de acesso ===== */
.seg-cfg { background: var(--bg2); border: 1px solid var(--border); border-radius: 10px; padding: 10px; }
.seg-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 6px 0; }
.seg-row label { font-size: 12.5px; color: var(--muted); }
.seg-row input { width: 92px; background: var(--bg3); border: 1px solid var(--border); color: var(--text); border-radius: 8px; padding: 6px 8px; text-align: right; }

/* ===== Observabilidade ===== */
.metrics-box { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 14px; }
.metric { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; background: var(--bg2); border: 1px solid var(--border); border-radius: 8px; padding: 6px 9px; }
.metric span { font-size: 12px; color: var(--muted); }
.metric strong { font-size: 12.5px; color: var(--text); text-align: right; }

/* ===== Modelos de peças ===== */
.mod-list { display: flex; flex-direction: column; gap: 12px; margin-top: 8px; }
.mod-cat { font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); margin-bottom: 4px; }
.mod-item { background: var(--bg2); border: 1px solid var(--border); border-radius: 10px; padding: 8px 10px; cursor: pointer; margin-bottom: 6px; }
.mod-item:hover { border-color: var(--accent, #6ea8fe); }
.mod-tit { font-weight: 600; font-size: 13px; }
.mod-meta { font-size: 11.5px; color: var(--muted); margin-top: 2px; }
.mod-ph { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 8px; }
.row2 { display: flex; gap: 10px; }
.row2 > div { flex: 1; }
#modEdCorpo { width: 100%; background: var(--bg3); border: 1px solid var(--border); color: var(--text); border-radius: 8px; padding: 8px; font-family: inherit; font-size: 13px; resize: vertical; }

/* ===== Versões do modelo ===== */
#modVerCorpo { width: 100%; background: var(--bg3); border: 1px solid var(--border); color: var(--text); border-radius: 8px; padding: 8px; font-family: inherit; font-size: 12.5px; resize: vertical; }

/* v60: painel de urgencia dos prazos, calculadora e feriados */
.prazo-painel { display: flex; gap: 8px; flex-wrap: wrap; padding: 10px 0 4px; }
.painel-card { display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 96px; padding: 8px 12px; background: var(--bg2); border: 1px solid var(--border); border-left-width: 3px; border-radius: 8px; cursor: default; }
.painel-card[disabled] { opacity: .85; }
.painel-card:not([disabled]) { cursor: pointer; }
.painel-card:not([disabled]):hover { background: var(--bg3); }
.painel-num { font-size: 20px; font-weight: 700; line-height: 1; }
.painel-rot { font-size: 11px; color: var(--muted); margin-top: 3px; }
.painel-card.alarme { border-color: #ef4444; box-shadow: 0 0 0 1px rgba(239,68,68,.35) inset; }

.ag-lrow.urg-vencido { background: rgba(239,68,68,.08); }
.ag-lrow.urg-hoje { background: rgba(249,115,22,.08); }
.ag-lstatus.s-vencido { color: #ef4444; font-weight: 600; }

.prz-calc { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 12px 0 4px; padding: 10px; background: var(--bg2); border: 1px solid var(--border); border-radius: 8px; }
.prz-calc-lb { font-size: 12px; color: var(--muted); font-weight: 600; }
.prz-calc label { display: inline; margin: 0 2px 0 6px; }
.prz-calc input, .prz-calc select { width: auto; }
.prz-calc-out { font-size: 12px; color: var(--accent); }

.fer-add { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 10px 0; }
.fer-add input { width: auto; }
.fer-list { display: flex; flex-direction: column; gap: 4px; margin-top: 8px; }
.fer-row { display: flex; align-items: center; gap: 10px; padding: 6px 8px; background: var(--bg2); border: 1px solid var(--border); border-radius: 6px; font-size: 13px; }
.fer-data { min-width: 120px; font-weight: 600; }
.fer-nome { flex: 1; }
.fer-escopo { color: var(--muted); font-size: 12px; }
.fer-del { background: transparent; border: none; color: var(--muted); font-size: 18px; cursor: pointer; padding: 0 4px; }
.fer-del:hover { color: #ef4444; }

/* v61: controle e visao dos prazos */
.prz-cfg-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 4px 0 14px; }
.prz-cfg-dn { color: var(--muted); font-weight: 600; }
.prz-cfg-lb { font-size: 12px; color: var(--muted); font-weight: 600; }
.prz-feed { padding: 12px; background: var(--bg2); border: 1px solid var(--border); border-radius: 8px; margin-bottom: 4px; }
.prz-feed-row { display: flex; align-items: center; gap: 8px; margin-top: 6px; }
.prz-feed-row input { flex: 1; font-family: monospace; font-size: 12px; }
.painel-qual { display: inline-flex; align-items: center; gap: 6px; margin-left: 4px; }
.painel-qc { font-size: 12px; color: #f59e0b; background: rgba(245,158,11,.12); border: 1px solid rgba(245,158,11,.4); border-radius: 999px; padding: 3px 10px; }
.ag-lstatus.s-suspenso { color: #a78bfa; }
.rel-filtros { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.rel-filtros input { width: auto; }
.rel-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.rel-table th, .rel-table td { text-align: left; padding: 7px 8px; border-bottom: 1px solid var(--border); }
.rel-table th { color: var(--muted); font-weight: 600; font-size: 12px; }
.rel-table td:not(:first-child), .rel-table th:not(:first-child) { text-align: center; }
.rel-table tr.rel-tot td { font-weight: 700; border-top: 2px solid var(--border); }
.rel-table td.rel-alarme { color: #ef4444; font-weight: 700; }

/* v62: controle operacional das tarefas */
.card-atrasada { border-left: 3px solid #ef4444; }
.card-hoje { border-left: 3px solid #f97316; }
.due-atraso { color: #ef4444; font-weight: 600; }
.due-hoje { color: #f97316; font-weight: 600; }
.ck-badge { font-size: 11px; color: var(--muted); background: var(--bg3); border-radius: 4px; padding: 1px 6px; }
.ck-badge.ck-ok { color: #22c55e; }
.parado-badge { font-size: 11px; color: #eab308; }
.ck-head { display: flex; align-items: center; justify-content: space-between; }
.ck-prog { font-size: 12px; color: var(--muted); }
.ck-bar { height: 6px; background: var(--bg3); border-radius: 3px; overflow: hidden; margin: 6px 0 8px; }
.ck-bar-fill { height: 100%; background: var(--accent); transition: width .2s; }
.ck-list { display: flex; flex-direction: column; gap: 2px; }
.ck-item { display: flex; align-items: center; gap: 8px; padding: 5px 6px; border-radius: 6px; }
.ck-item:hover { background: var(--bg2); }
.ck-item.done .ck-txt { text-decoration: line-through; color: var(--muted); }
.ck-txt { flex: 1; font-size: 13px; }
.ck-del { background: transparent; border: none; color: var(--muted); font-size: 16px; cursor: pointer; padding: 0 4px; }
.ck-del:hover { color: #ef4444; }
.tp-group { margin-bottom: 14px; }
.tp-ghead { display: flex; align-items: center; justify-content: space-between; padding: 6px 10px; border-left: 3px solid var(--accent); background: var(--bg2); border-radius: 6px; font-weight: 600; font-size: 13px; margin-bottom: 6px; }
.tp-count { color: var(--muted); font-weight: 600; }
.tp-card { display: flex; flex-direction: column; gap: 2px; padding: 8px 10px; border: 1px solid var(--border); border-radius: 6px; margin-bottom: 4px; cursor: pointer; }
.tp-card:hover { background: var(--bg3); }
.tp-title { font-size: 13px; }
.tp-meta { font-size: 11px; color: var(--muted); }

/* v63: etiquetas com cor, dependencias, selecao em lote, SLA */
.card-tags .tag { border: 1px solid transparent; }
.lbl-catalogo { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 2px; }
.lbl-chip { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px 3px 6px; border-radius: 999px; font-size: 12px; cursor: pointer; border: 1px solid var(--lblc, #489EA9); color: var(--lblc, #489EA9); opacity: .55; user-select: none; }
.lbl-chip.on { opacity: 1; background: color-mix(in srgb, var(--lblc) 16%, transparent); }
.lbl-dot { width: 12px; height: 12px; border-radius: 50%; background: var(--lblc, #489EA9); display: inline-block; }
.lbl-dot:not(.fix) { cursor: pointer; box-shadow: 0 0 0 2px rgba(255,255,255,.15); }
.dep-list { display: flex; flex-direction: column; gap: 4px; }
.dep-row { display: flex; align-items: center; gap: 8px; padding: 5px 8px; border-radius: 8px; background: rgba(127,127,127,.08); font-size: 13px; }
.dep-row.done { opacity: .6; }
.dep-row.done .dep-title { text-decoration: line-through; }
.dep-st { width: 16px; text-align: center; }
.dep-title { flex: 1; }
.dep-lista { font-size: 11px; opacity: .65; }
.dep-badge, .rec-badge { font-size: 11px; opacity: .9; }
.sla-badge { font-size: 11px; color: #fff; background: #ef4444; border-radius: 6px; padding: 1px 6px; font-weight: 600; }
.card-sel { outline: 2px solid #489EA9; outline-offset: 1px; box-shadow: 0 0 0 4px rgba(72,158,169,.25); }
#selBtn.active { background: rgba(72,158,169,.25); }
.bulk-bar { position: fixed; left: 50%; transform: translateX(-50%); bottom: 18px; z-index: 60; display: flex; gap: 8px; align-items: center; padding: 10px 14px; border-radius: 12px; background: var(--panel, #1d2330); border: 1px solid rgba(127,127,127,.25); box-shadow: 0 8px 30px rgba(0,0,0,.35); }
.bulk-bar span { font-size: 13px; opacity: .85; margin-right: 4px; }
.rel-sub { margin: 18px 4px 8px; font-size: 15px; opacity: .85; }
#depDrop { max-height: 220px; overflow: auto; }
#depDrop .search-item { display: block; width: 100%; text-align: left; padding: 7px 10px; background: none; border: 0; cursor: pointer; color: inherit; font-size: 13px; }
#depDrop .search-item:hover { background: rgba(127,127,127,.12); }

/* v64: hora e local na agenda */
.ag-chip-h { font-size: 10px; font-weight: 700; opacity: .85; margin-right: 4px; color: #489EA9; }
.ag-llocal { display: inline-block; margin-left: 8px; font-size: 11px; opacity: .7; max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }
.prz-hora-campo input[type="time"] { width: 100%; }

/* v65: dia por responsavel, arrastar para reagendar */
.ag-dia-resp { display: flex; gap: 12px; align-items: flex-start; overflow-x: auto; padding: 10px 4px; }
.ag-rcol { min-width: 220px; max-width: 300px; flex: 1; background: rgba(127,127,127,.06); border-radius: 10px; padding: 8px; }
.ag-rhead { font-weight: 600; font-size: 13px; margin-bottom: 8px; display: flex; align-items: center; gap: 6px; }
.ag-rnum { font-size: 11px; opacity: .65; background: rgba(127,127,127,.18); border-radius: 999px; padding: 1px 7px; }
.ag-chip[draggable="true"] { cursor: grab; }
.ag-chip.dragging { opacity: .5; }
.ag-cell.drag-over, .ag-wcol.drag-over { outline: 2px dashed #489EA9; outline-offset: -2px; background: rgba(72,158,169,.08); }

/* v66: linha do tempo unificada do processo */
.tl-filtros { flex-wrap: wrap; row-gap: 6px; }
.tl-resumo { display: flex; flex-wrap: wrap; gap: 6px; padding: 8px 2px; }
.tl-chip { font-size: 11px; padding: 3px 9px; border-radius: 999px; border: 1px solid rgba(127,127,127,.35); opacity: .9; }
.tl-chip.tl-alerta { border-color: #ef4444; color: #ef4444; font-weight: 600; }
.tl-lista { position: relative; padding: 4px 0 12px 10px; }
.tl-lista::before { content: ''; position: absolute; left: 21px; top: 0; bottom: 0; width: 2px; background: rgba(127,127,127,.25); }
.tl-dia { font-size: 12px; font-weight: 700; opacity: .75; margin: 14px 0 6px 34px; }
.tl-item { display: flex; gap: 10px; align-items: flex-start; margin: 6px 0; position: relative; }
.tl-ico { width: 24px; height: 24px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 12px; background: color-mix(in srgb, var(--tlc) 20%, transparent); border: 2px solid var(--tlc); z-index: 1; flex: none; }
.tl-corpo { background: rgba(127,127,127,.07); border-left: 3px solid var(--tlc); border-radius: 8px; padding: 7px 10px; flex: 1; min-width: 0; }
.tl-tit { font-size: 13px; font-weight: 600; }
.tl-hora { font-weight: 400; opacity: .7; font-size: 12px; }
.tl-txt { font-size: 12.5px; opacity: .9; margin-top: 2px; white-space: pre-wrap; word-break: break-word; }
.tl-autor { font-size: 11px; opacity: .6; margin-top: 3px; }
.tl-link { font-size: 11px; }
.tl-item.tl-marco .tl-corpo { border-left-width: 5px; background: color-mix(in srgb, var(--tlc) 10%, transparent); }
.tl-item.tl-marco .tl-tit { color: var(--tlc); }

/* v67, linha do tempo: acoes, associados, anotacoes, anexos e ancora por mes */
.tl-acoes { display: inline-flex; gap: 4px; margin-left: 8px; vertical-align: middle; }
.tl-btn { background: none; border: 1px solid rgba(127,127,127,.3); border-radius: 6px; font-size: 11px; padding: 1px 6px; cursor: pointer; color: inherit; opacity: .55; line-height: 1.5; }
.tl-item:hover .tl-btn { opacity: .95; }
.tl-btn:hover { border-color: var(--tlc); }
.tl-btn.tl-btn-del:hover { border-color: #ef4444; color: #ef4444; }
.tl-proc { font-size: 10.5px; font-weight: 600; margin-left: 8px; padding: 1px 7px; border-radius: 999px; border: 1px dashed rgba(127,127,127,.5); opacity: .85; }
.tl-anexos { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 5px; }
.tl-anexo { font-size: 12px; background: rgba(127,127,127,.1); border-radius: 6px; padding: 2px 8px; display: inline-flex; align-items: center; gap: 4px; }
.tl-anexo a { color: inherit; text-decoration: underline; }
.tl-extra { margin-top: 6px; border-top: 1px dashed rgba(127,127,127,.3); padding-top: 6px; }
.tl-nota { font-size: 12.5px; margin: 4px 0; }
.tl-nota .tl-autor { font-size: 11px; opacity: .7; }
.tl-nota-input, .tl-ed-texto { width: 100%; }
.tl-ed-texto { min-height: 70px; resize: vertical; font: inherit; font-size: 12.5px; background: rgba(127,127,127,.08); color: inherit; border: 1px solid rgba(127,127,127,.3); border-radius: 6px; padding: 6px 8px; margin-bottom: 6px; }
.tl-dia-alvo { color: var(--accent, #489EA9); transition: color .3s; }

/* v69, itens de controle da ficha do processo */
.ctl-progresso { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.ctl-barra { flex: 1; height: 6px; border-radius: 999px; background: rgba(127,127,127,.2); overflow: hidden; }
.ctl-barra-fill { height: 100%; border-radius: 999px; background: #22c55e; width: 0; transition: width .25s; }
.ctl-pct { font-size: 11px; font-weight: 700; opacity: .8; }
.ctl-lista { display: flex; flex-direction: column; gap: 3px; margin-bottom: 6px; }
.ctl-item { display: flex; align-items: center; gap: 6px; font-size: 12.5px; padding: 3px 4px; border-radius: 6px; }
.ctl-item:hover { background: rgba(127,127,127,.08); }
.ctl-item.feito .ctl-texto { text-decoration: line-through; opacity: .55; }
.ctl-texto { flex: 1; min-width: 0; word-break: break-word; }
.ctl-resp { max-width: 92px; font-size: 11px; background: transparent; color: inherit; border: 1px solid rgba(127,127,127,.25); border-radius: 6px; padding: 1px 2px; }
.ctl-del { background: none; border: none; color: inherit; opacity: .35; cursor: pointer; font-size: 14px; padding: 0 3px; }
.ctl-item:hover .ctl-del { opacity: .8; }
.ctl-del:hover { color: #ef4444; }

/* v70, chips de fase na controladoria e na lista */
.fase-chips { display: flex; flex-wrap: wrap; gap: 6px; padding: 6px 2px 2px; }
.fase-chip { font-size: 11.5px; padding: 3px 10px; border-radius: 999px; border: 1px solid var(--fc, rgba(127,127,127,.4)); color: inherit; background: color-mix(in srgb, var(--fc, #489EA9) 8%, transparent); cursor: pointer; }
.fase-chip b { font-weight: 700; }
.fase-chip.on { background: var(--fc, #489EA9); color: #fff; }
.fase-chip.off, .fase-chip.mini { cursor: default; opacity: .7; border-style: dashed; background: none; }
.pl-fase { font-size: 10px; font-weight: 700; padding: 1px 8px; border-radius: 999px; border: 1px solid var(--fc, #489EA9); color: var(--fc, #489EA9); margin-left: 6px; }

/* v71: governanca de prazos, memoria do calculo, conferencia dupla e pendencias */
.prz-memoria { margin: 8px 0; padding: 10px 12px; border: 1px solid var(--border, #d9e2e4); border-left: 3px solid #489EA9; border-radius: 8px; background: rgba(72,158,169,.06); font-size: 12.5px; }
.prz-mem-head { font-weight: 700; color: #0A4D56; margin-bottom: 4px; }
.prz-mem-linha { margin-bottom: 4px; }
.prz-mem-regra { color: #5b6b6e; margin-bottom: 6px; }
.prz-mem-dias { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.prz-mem-dia { background: rgba(65,64,66,.08); border-radius: 6px; padding: 1px 6px; white-space: nowrap; }
.prz-conf { margin: 6px 0 10px; display: flex; align-items: center; gap: 10px; font-size: 12.5px; }
.prz-conf-ok { color: #15803d; font-weight: 600; }
.prz-conf-falta { color: #b45309; font-weight: 600; }
.painel-pend { cursor: pointer; border: 1px solid #b45309 !important; color: #b45309 !important; background: rgba(180,83,9,.08) !important; }
.painel-pend:hover { background: rgba(180,83,9,.16) !important; }

/* v72: rigor nas tarefas, risco, revisor, tempo gasto e carga */
.risco-badge { background: rgba(239,68,68,.12); border: 1px solid #ef4444; color: #b91c1c; border-radius: 6px; padding: 0 6px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.risco-badge.risco-med { background: rgba(234,179,8,.12); border-color: #ca8a04; color: #a16207; }
.rev-badge { background: rgba(72,158,169,.12); border: 1px solid #489EA9; color: #0A4D56; border-radius: 6px; padding: 0 6px; font-size: 11px; white-space: nowrap; }
.tempo-list { display: flex; flex-direction: column; gap: 4px; }
.tempo-row { display: flex; align-items: center; gap: 8px; padding: 4px 8px; border: 1px solid var(--border, #d9e2e4); border-radius: 8px; font-size: 12.5px; }
.tempo-min { font-weight: 700; color: #0A4D56; min-width: 56px; }
.tempo-nota { flex: 1; }
.tempo-quem { color: #6b7280; white-space: nowrap; }

/* v73: audiencias e pericias, testemunhas, resultado e providencias */
.test-list, .prov-list { display: flex; flex-direction: column; gap: 4px; }
.test-row, .prov-row { display: flex; align-items: center; gap: 8px; padding: 4px 8px; border: 1px solid var(--border, #d9e2e4); border-radius: 8px; font-size: 12.5px; }
.test-row.done { background: rgba(34,197,94,.07); border-color: #22c55e; }
.test-nome { font-weight: 700; color: #0A4D56; }
.test-info, .test-quem { color: #6b7280; white-space: nowrap; }
.test-comprova { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.prov-head { font-weight: 700; color: #0A4D56; margin-top: 8px; font-size: 12.5px; }
.prov-tit { flex: 1; }
.prov-data { color: #6b7280; white-space: nowrap; }

/* v74: saude da captura do DJEN */
.pub-saude { margin: 8px 14px 0; padding: 9px 12px; border-radius: 8px; font-size: 13px; line-height: 1.5; }
.pub-saude.saude-boa { background: #e8f4ee; color: #1b5e3a; border: 1px solid #bfe3cf; }
.pub-saude.saude-ruim { background: #fdecec; color: #8a1f1f; border: 1px solid #f3c4c4; }
.pub-diag { margin: 8px 14px 0; padding: 9px 12px; border-radius: 8px; font-size: 12.5px; line-height: 1.6; background: #f4f6f8; border: 1px solid #dde3e8; color: #333; font-family: ui-monospace, Menlo, Consolas, monospace; }

/* v75: central de intimacoes */
.pub-cats { flex-wrap: wrap; }
.pub-cat { border: 1px solid #d7dde3; background: #fff; border-radius: 14px; padding: 3px 10px; font-size: 12px; cursor: pointer; }
.pub-cat.active { background: #0A4D56; color: #fff; border-color: #0A4D56; }
.pub-cat-n { background: rgba(0,0,0,.12); border-radius: 10px; padding: 0 6px; font-size: 11px; }
.pub-cat.active .pub-cat-n { background: rgba(255,255,255,.25); }
.pub-row.critica { border-left: 4px solid #c0392b; }
.pub-cat-badge { font-size: 11px; padding: 1px 8px; border-radius: 10px; background: #eef2f5; color: #33454f; text-transform: none; }
.pub-cat-badge.cat-citacao, .pub-cat-badge.cat-sentenca, .pub-cat-badge.cat-acordao { background: #fdecec; color: #8a1f1f; }
.pub-cat-badge.cat-pauta, .pub-cat-badge.cat-pericia { background: #eaf3fb; color: #1b4e79; }
.pub-critica-badge { font-size: 11px; padding: 1px 8px; border-radius: 10px; background: #c0392b; color: #fff; }
.pub-carimbo { font-size: 12px; color: #556; margin-top: 4px; font-style: italic; }
.pub-rev-falta { color: #c0392b; font-weight: 600; font-style: normal; }
.pub-rev-badge { background: #c0392b; color: #fff; border-radius: 10px; padding: 0 6px; font-size: 11px; }
.pub-cat-sel, .pub-resp-sel { font-size: 12px; padding: 3px 6px; border: 1px solid #d7dde3; border-radius: 6px; background: #fff; max-width: 160px; }

/* v76: protocolo de peticoes */
.prot-form { margin: 10px 14px; padding: 12px; border: 1px solid #d7dde3; border-radius: 10px; background: #fff; }
.prot-form-grid { display: flex; flex-wrap: wrap; gap: 8px; }
.prot-form-grid input, .prot-form-grid select { padding: 6px 8px; border: 1px solid #d7dde3; border-radius: 6px; font-size: 13px; }
.prot-form-grid #pfTitulo { flex: 1 1 280px; }
.prot-row.st-rejeitado { border-left: 4px solid #c0392b; }
.prot-row.st-protocolado { border-left: 4px solid #f59e0b; }
.prot-row.st-confirmado { border-left: 4px solid #22c55e; }
.prot-status { font-size: 11px; padding: 1px 8px; border-radius: 10px; background: #eef2f5; color: #33454f; }
.prot-status.st-rejeitado { background: #fdecec; color: #8a1f1f; }
.prot-status.st-protocolado { background: #fef6e7; color: #8a5a00; }
.prot-status.st-confirmado { background: #e8f4ee; color: #1b5e3a; }
.prot-check { margin: 6px 0; display: flex; flex-direction: column; gap: 3px; }
.prot-item { font-size: 13px; display: flex; align-items: center; gap: 7px; }
.prot-carimbo { font-size: 11.5px; color: #667; font-style: italic; }
.prot-chk-resumo { font-size: 12.5px; color: #556; }
.prot-meta { font-size: 12.5px; color: #445; }
.prot-ok { color: #1b5e3a; font-size: 12px; }
.prot-falta { color: #c0392b; font-size: 12px; font-weight: 600; }
.prot-rejeicao { margin-top: 4px; padding: 7px 10px; border-radius: 8px; background: #fdecec; color: #8a1f1f; font-size: 12.5px; }
.prot-banco { margin-top: 6px; padding: 8px 10px; border: 1px dashed #c9d3da; border-radius: 8px; font-size: 12.5px; }
.prot-banco-grid { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.prot-banco-grid input { padding: 5px 8px; border: 1px solid #d7dde3; border-radius: 6px; font-size: 12.5px; max-width: 140px; }

/* v77: saude do acervo */
.saude-lim { font-size: 13px; display: flex; align-items: center; gap: 6px; }
.saude-lim input { padding: 4px 6px; border: 1px solid #d7dde3; border-radius: 6px; }
.saude-indis { margin: 10px 14px; padding: 12px; border: 1px solid #d7dde3; border-radius: 10px; background: #fff; font-size: 13px; display: flex; flex-direction: column; gap: 8px; }
.saude-id-lista { display: flex; flex-wrap: wrap; gap: 6px; }
.saude-id-chip { background: #fef6e7; color: #8a5a00; border: 1px solid #f0dcae; border-radius: 12px; padding: 3px 10px; font-size: 12px; display: inline-flex; gap: 6px; align-items: center; }
.saude-id-chip button { border: 0; background: none; cursor: pointer; color: #8a5a00; font-size: 14px; }
.saude-afetados { margin-top: 4px; padding: 8px 10px; border-radius: 8px; background: #fdecec; border: 1px solid #f3c4c4; }
.saude-listas { margin: 0 14px 20px; display: flex; flex-direction: column; gap: 12px; }
.saude-bloco { padding: 12px; border: 1px solid #d7dde3; border-radius: 10px; background: #fff; font-size: 13px; }
.saude-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 7px 0; border-top: 1px solid #eef1f4; }
.saude-num { font-weight: 600; color: #0A4D56; }
.saude-cli { color: #333; }
.saude-fase, .saude-extra { color: #667; font-size: 12.5px; }
.saude-extra { font-weight: 600; color: #8a1f1f; }
.saude-prov { flex-basis: 100%; font-size: 12px; color: #556; }

/* v78: rigor nas tarefas */
.cond-badge { background: #f1f5f9; border: 1px solid #94a3b8; color: #475569; border-radius: 4px; padding: 1px 6px; font-size: 11px; font-weight: 600; }
.card-condicional { opacity: 0.72; border-style: dashed !important; }
.cond-banner { display: flex; align-items: center; justify-content: space-between; gap: 10px; background: #f8fafc; border: 1px dashed #94a3b8; border-radius: 8px; padding: 10px 12px; margin: 10px 0; font-size: 13px; color: #334155; flex-wrap: wrap; }
.aus-form { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin: 6px 0 10px; }
.aus-form input, .aus-form select { padding: 6px 8px; }
.aus-chip { background: #fef3c7; border: 1px solid #f59e0b; color: #92400e; border-radius: 4px; padding: 1px 6px; font-size: 11px; font-weight: 600; margin-left: 6px; }
.ns-resumo { display: flex; gap: 16px; flex-wrap: wrap; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px; padding: 10px 14px; margin-bottom: 8px; font-size: 13px; color: #334155; }

/* v79: calendarios por tribunal e protocolos antecipados */
.prot-antecedencia { margin: 8px 0; }
.ant-urgentes { background: #fef3c7; border: 1px solid #f59e0b; color: #92400e; border-radius: 8px; padding: 8px 12px; margin-top: 6px; font-size: 13px; }
.fer-escopo { background: #e0f2f1; border-radius: 4px; padding: 1px 6px; font-size: 11px; color: #0A4D56; }

/* v82: vinculos automaticos */
.assoc-auto { background: #e0f2f1; border: 1px solid #489EA9; color: #0A4D56; border-radius: 4px; padding: 0 5px; font-size: 10px; font-weight: 700; }

/* v83: pasta digital */
.doc-filtros { display: flex; gap: 8px; margin: 4px 0 8px; }
.doc-list { display: flex; flex-direction: column; gap: 4px; max-height: 320px; overflow: auto; }
.doc-row { display: flex; align-items: center; gap: 8px; padding: 5px 8px; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 6px; font-size: 13px; flex-wrap: wrap; }
.doc-nome.link { color: #0A4D56; cursor: pointer; text-decoration: underline; font-weight: 600; max-width: 340px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.doc-cat-sel { font-size: 12px; padding: 2px 4px; }
.doc-ver { background: #e0f2f1; border: 1px solid #489EA9; color: #0A4D56; border-radius: 4px; padding: 0 6px; font-size: 11px; font-weight: 700; }
.doc-prot { background: #dcfce7; border: 1px solid #16a34a; color: #166534; border-radius: 4px; padding: 0 6px; font-size: 11px; font-weight: 700; }

/* v84: financeiro do processo */
.fin-config, .fin-form { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin: 4px 0 8px; font-size: 13px; }
.fin-config input, .fin-form input, .fin-form select { padding: 4px 6px; }
.fin-atrasado { border-color: #dc2626 !important; background: #fef2f2 !important; }

/* v87: painel de excecoes */
.exc-urgente td { background: #fef2f2; }

/* v93: metas do mes */
.meta-linha { margin: 6px 0; }
.meta-barra { height: 8px; border-radius: 4px; background: rgba(127,127,127,.25); overflow: hidden; margin-top: 3px; }
.meta-fill { height: 100%; background: #f59e0b; transition: width .3s; }
.meta-fill.ok { background: #22c55e; }
.meta-ok { color: #22c55e; }
tr.meta-corrente td { font-weight: 700; }

/* v94: geracao de pecas */
.peca-vazio-aviso { color: var(--danger, #ef4444); font-weight: 600; }
#pecaVazios { margin: 6px 0 10px; }
#pecaTexto { font-family: Arial, Helvetica, sans-serif; line-height: 1.5; }
.mod-tit [data-usar] { float: right; }

/* v100: farol de risco operacional no acervo e na ficha */
.pl-risco { display: flex; align-items: center; gap: 6px; font-size: 13px; }
.risco-dot { width: 10px; height: 10px; border-radius: 50%; flex: 0 0 auto; }
.risco-ok { background: #22c55e; }
.risco-baixo { background: #eab308; }
.risco-atencao { background: #f97316; }
.risco-alto { background: #ef4444; box-shadow: 0 0 6px rgba(239,68,68,.7); }
.risco-nota { font-weight: 700; color: var(--muted); }
.risco-badge { display: inline-flex; align-items: center; gap: 6px; padding: 2px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; background: var(--bg2); }

/* v103: liquidacao e execucao */
.exe-calcs { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0; }
.exe-card { border: 1px solid #e2e8f0; border-radius: 8px; padding: 8px 10px; min-width: 180px; flex: 1 1 200px; max-width: 300px; background: #f8fafc; color: #334155; }
.exe-card.exe-hom { border-color: #14b8a6; box-shadow: 0 0 0 1px #14b8a6 inset; }
.exe-card-top { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; }
.exe-card-top b { flex: 1; }
.exe-badge { background: #14b8a6; color: #04211d; font-size: 11px; font-weight: 700; padding: 1px 7px; border-radius: 10px; }
.exe-vals { display: flex; gap: 10px; flex-wrap: wrap; font-size: 13px; }
.exe-papel { font-size: 11px; font-weight: 700; padding: 1px 7px; border-radius: 10px; background: #e2e8f0; color: #334155; white-space: nowrap; }
.exe-papel-principal { background: #7c3aed; color: #fff; }
.exe-papel-subsidiario { background: #f59e0b; color: #1f1500; }
.exe-papel-solidario { background: #0ea5e9; color: #062434; }
.exe-sit { margin-left: auto; }
.exe-gar-lev { opacity: 0.55; }

/* v104: pesquisa patrimonial e medidas executivas */
.exe-res-positivo { border-color: #14b8a6; color: #0f766e; }
.exe-res-parcial { border-color: #f59e0b; color: #b45309; }
.exe-res-negativo { border-color: #ef4444; color: #b91c1c; }
.exe-med-deferida { border-color: #14b8a6; color: #0f766e; }
.exe-med-indeferida { border-color: #ef4444; color: #b91c1c; }
.exe-med-cumprida { border-color: #7c3aed; color: #6d28d9; }

/* v105: embargos, suspensao e prescricao */
.exe-susp { background: #fef3c7; border: 1px solid #f59e0b; color: #92400e; border-radius: 8px; padding: 8px 12px; margin-bottom: 8px; font-size: 13px; }
.exe-badge-susp { background: #f59e0b; color: #1f1500; font-size: 11px; font-weight: 700; padding: 1px 7px; border-radius: 10px; white-space: nowrap; }
.exe-emb-acolhido { border-color: #ef4444; color: #b91c1c; }
.exe-emb-parcial { border-color: #f59e0b; color: #b45309; }
.exe-emb-rejeitado { border-color: #14b8a6; color: #0f766e; }

/* v106: proxima medida sugerida */
.exe-sug-box { border: 1px solid #e2e8f0; border-radius: 8px; padding: 8px 12px; margin-bottom: 8px; background: #f8fafc; }
.exe-sug-head { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.4px; color: #64748b; margin-bottom: 6px; }
.exe-sug { display: flex; flex-direction: column; gap: 1px; padding: 6px 10px; border-left: 3px solid #14b8a6; margin-bottom: 5px; font-size: 13px; color: #334155; background: #fff; border-radius: 0 6px 6px 0; }
.exe-sug:last-child { margin-bottom: 0; }
.exe-sug span { color: #64748b; font-size: 12px; }
.exe-sug-alerta { border-left-color: #ef4444; }
.exe-sug-alerta b { color: #b91c1c; }
.exe-sug-aviso { border-left-color: #f59e0b; }
.exe-sug-aviso b { color: #b45309; }

/* v107: painel consolidado de execucoes */
.exe-cart-row { cursor: pointer; }
.exe-cart-row:hover td { background: #f1f5f9; }
.exe-sug-mini { display: inline-block; font-size: 12px; padding: 3px 8px; border-radius: 6px; background: #f0fdfa; border: 1px solid #14b8a6; color: #0f766e; }
.exe-sug-mini.exe-sug-alerta { background: #fef2f2; border-color: #ef4444; color: #b91c1c; }
.exe-sug-mini.exe-sug-aviso { background: #fffbeb; border-color: #f59e0b; color: #b45309; }

/* v114: pasta digital, ordem manual e comparacao de versoes */
.doc-mover { display: inline-flex; flex-direction: column; gap: 1px; }
.doc-seta { border: 1px solid var(--border, #d8d8d8); background: var(--bg2, #fff); border-radius: 4px; font-size: 8px; line-height: 1; padding: 2px 4px; cursor: pointer; color: var(--text, #333); }
.doc-seta:hover { background: var(--bg3, #f0f0f0); }
#docCompareBox { border: 1px solid var(--border, #d8d8d8); border-radius: 8px; padding: 10px 12px; margin-top: 8px; background: var(--bg2, #fff); }
.doc-diff { font-family: Consolas, Menlo, monospace; font-size: 12px; max-height: 380px; overflow: auto; border: 1px solid var(--border, #e2e2e2); border-radius: 6px; margin-top: 6px; }
.doc-diff-l { padding: 1px 8px; white-space: pre-wrap; word-break: break-word; }
.doc-diff-l.mais { background: rgba(26, 127, 55, .12); color: #1a7f37; }
.doc-diff-l.menos { background: rgba(207, 34, 46, .10); color: #cf222e; }
.doc-diff-salto { padding: 2px 8px; color: #888; font-style: italic; background: var(--bg3, #fafafa); }
.doc-diff-mais { color: #1a7f37; }
.doc-diff-menos { color: #cf222e; }

/* v118: novidades da versao e ciencia presumida */
.nov-modal { max-width: 560px; }
.nov-lista { margin: 0; padding-left: 20px; }
.nov-lista li { margin: 8px 0; line-height: 1.45; }
.pub-presumida { display: inline-block; padding: 0 6px; border-radius: 8px; background: #fff3cd; color: #7a5c00; font-size: 11px; vertical-align: 1px; }
#abTempoBox { margin-top: 8px; }
#abTempoBox input { width: 110px; }

/* v119: base de conhecimento */
.base-corpo { margin: 6px 0; padding: 8px 10px; background: rgba(0,0,0,.035); border-radius: 8px; font-size: 13px; line-height: 1.5; max-height: 150px; overflow: auto; white-space: normal; }
#baseForm textarea { margin-top: 6px; }

/* v120: propostas de acordo, aviso de prazo sem movimentacao e testes de restauracao */
.prz-semmov { display: inline-block; margin-left: 6px; padding: 0 6px; border-radius: 8px; background: #fde8e8; color: #9b1c1c; font-size: 11px; }
#mtzPropostas .fin-ok { border-left: 3px solid #16a34a; }
#restoreTestes { margin-top: 8px; }

/* v121: versao vigente e modelos ultrapassados */
.mod-versao { display: inline-block; margin-left: 6px; padding: 0 6px; border-radius: 8px; background: #e0f2f1; color: #0A4D56; font-size: 11px; font-weight: 700; }
.mod-ultra { opacity: 0.72; border-left: 3px solid #dc2626; }
.mod-ultra-badge { display: inline-block; margin-left: 6px; padding: 0 6px; border-radius: 8px; background: #fde8e8; color: #9b1c1c; font-size: 11px; }
#calcHora { vertical-align: middle; }

/* v122: banco de decisoes */
.dec-consolidados { margin: 6px 0; font-size: 12px; line-height: 2; }
.dec-chip { display: inline-block; padding: 1px 8px; border-radius: 10px; background: #e0f2f1; color: #0A4D56; margin-right: 4px; }
.dec-chip.dec-ruim { background: #fde8e8; color: #9b1c1c; }
.dec-trecho { font-size: 12px; color: #444; background: #f7f7f5; border-left: 3px solid #489EA9; padding: 6px 8px; border-radius: 4px; margin: 4px 0; white-space: pre-wrap; }
.dec-fund { display: inline-block; font-size: 11px; padding: 0 6px; border-radius: 8px; margin: 1px 2px; background: #eef7ee; }
.dec-fund.rejeitado { background: #fde8e8; }
.dec-fund a { color: #9b1c1c; text-decoration: none; margin-left: 2px; }
.dec-fund-form { display: inline-flex; gap: 4px; align-items: center; margin-left: 6px; }
.mod-item.dec-desfavoravel { border-left: 3px solid #dc2626; }
.mod-item.dec-favoravel { border-left: 3px solid #16a34a; }
.mod-item.dec-parcial { border-left: 3px solid #f59e0b; }

/* v123: precedentes na geracao de pecas */
.peca-decs { max-height: 180px; overflow: auto; border: 1px solid #e2e2df; border-radius: 6px; padding: 6px; margin: 4px 0 8px; }
.peca-dec-item { display: flex; gap: 8px; align-items: flex-start; padding: 3px 2px; font-size: 12px; cursor: pointer; }
.peca-dec-item input { margin-top: 2px; }

/* v124: governanca do motor */
.ab-gov { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 8px; font-size: 12px; }
.ab-gov label { margin: 0; }

/* v125: tabelas dos indicadores de produtividade e retrabalho */
.mini-tab { border-collapse: collapse; font-size: 12px; margin: 4px 0; }
.mini-tab th, .mini-tab td { border: 1px solid #e2e2df; padding: 3px 8px; text-align: left; }
.mini-tab th { background: #f4f4f2; }

/* v126: alerta de representacao, resumo da movimentacao e providencia */
.rep-alerta { display: inline-block; font-size: 12px; padding: 2px 8px; border-radius: 8px; background: #fde8e8; color: #9b1c1c; margin-left: 6px; }
.rep-alerta.rep-ok { background: #eef7ee; color: #14532d; }
.pub-resumo { font-size: 12px; color: #0A4D56; background: #eef6f6; border-radius: 6px; padding: 3px 8px; margin: 3px 0; }
.tl-prov { background: #0A4D56; color: #fff; border-color: #0A4D56; }

/* v127: inteligencia documental */
.doc-ileg { font-size: 11px; padding: 0 6px; border-radius: 8px; background: #fde8e8; color: #9b1c1c; }
.doc-ass { font-size: 11px; padding: 0 6px; border-radius: 8px; background: #eef7ee; color: #14532d; }
.doc-apr { font-size: 11px; padding: 0 6px; border-radius: 8px; background: #fff7e6; color: #92400e; }
.doc-apr.apr-aprovado { background: #eef7ee; color: #14532d; }
.doc-apr.apr-rejeitado { background: #fde8e8; color: #9b1c1c; }
.doc-trecho { font-size: 12px; color: #555; background: #f7f7f5; border-left: 3px solid #489EA9; padding: 4px 8px; border-radius: 4px; margin-top: 3px; width: 100%; }

/* v128: seguranca */
.mfa-box { background: #f7f7f5; border-radius: 8px; padding: 8px 10px; }
#mfaRecup b { font-family: monospace; color: #0A4D56; }

/* v130: painel de inteligencia juridica */
.ia-painel { margin: 10px 0; padding: 10px; background: #f4f8f8; border: 1px solid #cfe3e3; border-radius: 10px; }
.ia-acoes { display: flex; flex-wrap: wrap; gap: 6px; }
.ia-saida { margin-top: 10px; background: #fff; border: 1px solid var(--border); border-radius: 8px; padding: 10px; }
.ia-saida-cab { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.ia-texto { white-space: pre-wrap; line-height: 1.5; font-size: 14px; }
.ia-conf { font-size: 11px; font-weight: 700; padding: 1px 8px; border-radius: 10px; }
.ia-conf-alta { background: #eef7ee; color: #14532d; }
.ia-conf-media { background: #fff7e6; color: #92400e; }
.ia-conf-baixa { background: #fde8e8; color: #9b1c1c; }
.ia-insuf { font-size: 11px; color: #9b1c1c; font-weight: 600; }
.ia-fonte { color: #0A4D56; font-weight: 600; }
.ia-rodape { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.ia-aviso { margin-top: 6px; font-style: italic; }
.ia-carregando { color: #489EA9; font-size: 14px; }
.ia-erro { color: #9b1c1c; }
.ia-tab { width: 100%; border-collapse: collapse; margin: 6px 0; font-size: 13px; }
.ia-tab th, .ia-tab td { border: 1px solid var(--border); padding: 4px 6px; text-align: left; vertical-align: top; }
.ia-tab th { background: #eef6f6; }

/* v133: triagem */
.tri-selo { display: inline-block; font-size: 11px; padding: 1px 7px; border-radius: 8px; background: #eef; color: #557; margin-right: 4px; }
.tri-selo.tri-susp { background: #fde8e8; color: #9b1c1c; font-weight: 600; }
.tri-selo.tri-hum { background: #fff7e6; color: #92400e; }

/* ===== v134: assistente de linguagem natural ===== */
.assist-exemplos { margin: 4px 0 10px; display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.assist-exemplos .assist-ex { font-size: 11px; }
.assist-card { border: 1px solid var(--border, #e2e2e2); border-radius: 10px; padding: 12px; background: #fff; }
.assist-entendi { font-size: 12px; color: var(--muted, #777); margin-bottom: 4px; }
.assist-resp { font-size: 15px; font-weight: 600; color: var(--teal); line-height: 1.4; }
.assist-impossivel .assist-resp { color: #b45309; }
.assist-origem { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.assist-chip { font-size: 11px; background: rgba(72,158,169,.12); color: var(--teal); border-radius: 999px; padding: 2px 8px; }
.assist-tab-wrap { overflow-x: auto; margin-top: 10px; }
.assist-tab { border-collapse: collapse; width: 100%; font-size: 12px; }
.assist-tab th, .assist-tab td { border: 1px solid var(--border, #e6e6e6); padding: 5px 8px; text-align: left; white-space: nowrap; }
.assist-tab th { background: #f5f7f7; color: #333; position: sticky; top: 0; }
.assist-abrir { background: none; border: none; color: var(--accent); cursor: pointer; padding: 0; font: inherit; text-decoration: underline; }
.assist-erro { color: #b91c1c; font-size: 13px; padding: 8px; }

/* ===== v135: previsão e alertas de fase ===== */
.tl-previsao { margin: 6px 0 10px; display: flex; flex-direction: column; gap: 8px; }
.prev-bloco { border: 1px solid var(--border, #e2e2e2); border-radius: 10px; padding: 10px 12px; background: #fff; }
.prev-tit { font-size: 13px; font-weight: 700; color: var(--teal); margin-bottom: 6px; }
.prev-item { padding: 5px 0; border-top: 1px dashed #eee; }
.prev-item:first-of-type { border-top: none; }
.prev-mov { font-size: 13px; font-weight: 600; color: #1f2937; }
.prev-motivo { font-size: 12px; color: var(--muted, #777); margin-top: 2px; }
.prev-origem { color: var(--accent); }
.prev-conf { font-size: 10px; font-weight: 600; border-radius: 999px; padding: 1px 7px; margin-left: 4px; vertical-align: middle; }
.prev-alertas { border-color: #f0c27a; background: #fff8ee; }
.prev-alertas .prev-tit { color: #b45309; }
.prev-alerta { padding: 6px 0; border-top: 1px dashed #f0dcc0; }
.prev-alerta:first-of-type { border-top: none; }
.prev-alerta-tit { font-size: 13px; font-weight: 600; color: #92400e; }
.prev-alerta-det { font-size: 12px; color: #6b5636; margin-top: 2px; }
.prev-trecho { font-size: 11px; color: #8a7a5c; margin-top: 3px; font-style: italic; border-left: 2px solid #e6cfa0; padding-left: 6px; }
.prev-alta { background: #fde8e8; color: #b91c1c; }
.prev-media { background: #fef3d7; color: #92400e; }
.prev-baixa { background: #eef2f5; color: #55707a; }

/* ===== v136: resumo de assunção e confiança dos dados ===== */
#assuncaoCard .sec-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.conf-selo { font-size: 11px; font-weight: 700; border-radius: 999px; padding: 2px 9px; white-space: nowrap; }
.conf-alta { background: #dcfce7; color: #166534; }
.conf-media { background: #fef3c7; color: #92400e; }
.conf-baixa { background: #fee2e2; color: #b91c1c; }
.conf-sinais { margin: 4px 0; display: flex; flex-direction: column; gap: 3px; }
.conf-sinal { display: flex; gap: 6px; font-size: 11px; color: #4b5563; line-height: 1.35; }
.conf-ico { flex: 0 0 auto; }
.resumo-assuncao { margin-top: 8px; }
.resumo-assuncao-corpo { font-size: 12.5px; line-height: 1.5; color: #1f2937; background: #f8fafa; border: 1px solid var(--border, #e2e2e2); border-radius: 8px; padding: 10px; white-space: normal; }
.resumo-assuncao-meta { font-size: 11px; color: var(--muted, #777); margin-top: 4px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }

/* ===== v137: recuperação/falência e habilitação de crédito ===== */
.habil-paga, .habil-deferida, .habil-incluida_qgc { color: #166534; }
.habil-impugnada, .habil-indeferida { color: #b91c1c; }
.habil-a_protocolar { color: #92400e; }
#exeInsolvAviso .exe-susp { background: #fff8ee; border: 1px solid #f0c27a; color: #92400e; }

/* ===== v138: ferramentas, campos e custo ===== */
.fer-body { min-height: 120px; }
.fer-tab { font-size: 12px; }
.cp-form { display: flex; flex-direction: column; gap: 4px; }
.cp-row { display: flex; flex-direction: column; gap: 2px; font-size: 12px; }
.cp-row span { color: var(--muted, #777); }
.cp-row input, .cp-row select, .cp-row textarea { font-size: 13px; }
#custoResumo { font-size: 11px; }

/* ===== v139: carga da equipe ===== */
.carga-bar { height: 6px; background: #eee; border-radius: 3px; overflow: hidden; margin-top: 3px; }
.carga-bar > div { height: 100%; background: var(--turq, #489EA9); }

/* ===== v140: corrige o corte da coluna lateral da ficha =====
   As colunas do grid precisam de min-width:0 para poderem encolher; sem isso o
   conteudo empurra a largura e vaza pela borda direita do modal. */
.ficha-cols { min-width: 0; }
.ficha-col-main, .ficha-col-side { min-width: 0; }
.ficha-col-side .card-sec { overflow: hidden; }
.ficha-col-side .card-sec * { min-width: 0; }
/* o selo de confianca quebra para a linha de baixo em vez de sobrepor o titulo */
.sec-head { flex-wrap: wrap; gap: 6px; }
#assuncaoCard .sec-head { flex-wrap: wrap; }
.conf-selo { white-space: nowrap; }
/* textos longos quebram dentro dos cartoes */
.conf-sinal, .conf-sinal span, .resumo-assuncao-corpo, .mini-row, .mod-meta { overflow-wrap: anywhere; word-break: break-word; }
/* inputs em linha nao empurram a largura */
.inline-add { flex-wrap: wrap; }
.inline-add input, .inline-add select { min-width: 0; }
/* o corpo da ficha nunca rola na horizontal */
.ficha-body { overflow-x: hidden; }

/* ===== v141: blindagem geral contra estouro horizontal =====
   O mesmo problema da ficha (colunas de grid e itens de flex que nao encolhem e
   empurram a largura) pode aparecer em outras telas. Estas regras deixam os
   filhos encolherem e o texto longo quebrar, sem mudar nenhuma funcao. */
.ficha-grid > div { min-width: 0; }
.ficha-grid input, .ficha-grid select, .ficha-grid textarea { max-width: 100%; }
.grid2 > *, .proc-grid > *, .metrics-box > *, .gami-grid > * { min-width: 0; }
.plist-row > *, .plist-head > *, .ch-row > *, .prazo-log .pl-row > * { min-width: 0; overflow-wrap: anywhere; }
.mod-item, .mod-tit, .mod-meta, .doc-row, .doc-row > span, .mini-row, .conf-sinal { min-width: 0; overflow-wrap: anywhere; word-break: break-word; }
.side-body { overflow-x: hidden; }
.side-body table { max-width: 100%; }
.assist-tab-wrap { overflow-x: auto; }
/* selos e badges nunca empurram a largura da linha */
.sec-head { flex-wrap: wrap; gap: 6px; }
.exe-add { flex-wrap: wrap; }
.exe-add input, .exe-add select { min-width: 0; }

/* ===== v142: diagnóstico ===== */
.diag-top { display: flex; flex-direction: column; gap: 6px; margin-bottom: 10px; }
.diag-versao { font-size: 12px; color: var(--muted); }
.diag-resumo { display: flex; gap: 8px; }
.diag-b { font-size: 12px; padding: 2px 8px; border-radius: 999px; }
.diag-b.ok { background: #dcfce7; color: #166534; }
.diag-b.atencao { background: #fef9c3; color: #854d0e; }
.diag-b.falha { background: #fee2e2; color: #991b1b; }
.diag-lista { display: flex; flex-direction: column; gap: 4px; }
.diag-row { display: grid; grid-template-columns: 20px minmax(0, 1.1fr) minmax(0, 2fr); gap: 8px; align-items: start; padding: 6px 8px; border: 1px solid var(--border); border-radius: 8px; font-size: 12.5px; }
.diag-row > * { min-width: 0; overflow-wrap: anywhere; }
.diag-sec { font-weight: 600; }
.diag-det { color: var(--muted); }
.diag-falha { border-color: #fca5a5; background: #fef2f2; }
.diag-atencao { border-color: #fde68a; background: #fffbeb; }

/* ===== v143: login em <form> para o Chrome salvar a senha ===== */
#loginForm { display: flex; flex-direction: column; }
.remember-device { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--muted); margin-bottom: 14px; cursor: pointer; }
.remember-device input { width: auto; margin: 0; }
.remember-device.hidden { display: none; }

/* ===== v149: aviso persistente de intimação do Domicílio, para não passar batido ===== */
.dom-alerta { background: #b91c1c; color: #fff; padding: 10px 16px; display: flex; align-items: center; gap: 14px; font-weight: 600; box-shadow: 0 2px 8px rgba(0,0,0,.2); position: sticky; top: 0; z-index: 50; }
.dom-alerta.hidden { display: none; }
.dom-alerta .dom-a-txt { flex: 1; }
.dom-alerta button { background: #fff; color: #b91c1c; border: none; border-radius: 6px; padding: 6px 12px; font-weight: 700; cursor: pointer; }
.dom-alerta button.ghost { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.6); }

/* ===== v150: indicadores claros de microfone e câmera desligados (traço diagonal) ===== */
.video-tile .vt-mic, .video-tile .vt-camoff { display: none; align-items: center; justify-content: center; width: 26px; height: 26px; padding: 0; background: #b91c1c; color: #fff; }
.video-tile.mic-off .vt-mic { display: flex; color: #fff; }
.video-tile.cam-off .vt-camoff { display: flex; color: #fff; }
.video-tile .vt-mic svg, .video-tile .vt-camoff svg { display: block; }
/* botão de controle com o estado desligado bem visível */
.vt-btn.off { background: #b91c1c; position: relative; }
/* quando a câmera do tile local está desligada, o avatar grande deixa claro */
.video-tile.local.cam-off .vt-avatar { display: flex; }

/* v151: aviso da implantação gradual dos processos */
.impl-banner { background: #fef3c7; color: #92400e; border: 1px solid #fcd34d; border-radius: 8px; padding: 8px 12px; margin: 8px 0; font-size: 13px; }

/* ===== v154: indicadores de microfone e câmera na janelinha de presença ===== */
.od-mc-wrap { display: inline-flex; gap: 5px; align-items: center; margin-left: 6px; }
.od-mc { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 5px; }
.od-mc.on { color: #6b7280; background: rgba(120,120,120,.12); }
.od-mc.off { color: #fff; background: #b91c1c; }
.od-row .od-acts { margin-left: auto; }

/* ====== v155 ====== */
/* camera fechada: avatar sobre palco elegante, combinando com o resto da chamada */
.video-tile.cam-off { background: radial-gradient(circle at 50% 42%, #12202b, #0a1219); }

/* Dica do Dia piscando ate o primeiro clique de cada dia */
@keyframes dicaPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(72,158,169,.45); }
  50% { box-shadow: 0 0 0 7px rgba(72,158,169,0); }
}
#dicaBtn.dica-pulse { animation: dicaPulse 1.6s ease-in-out infinite; border-color: var(--turq); color: var(--turq); }
@media (prefers-reduced-motion: reduce) { #dicaBtn.dica-pulse { animation: none; outline: 2px solid var(--turq); } }

/* Manual do sistema */
.manual-modal { max-width: 760px; width: min(760px, 94vw); }
.manual-content { max-height: 56vh; overflow-y: auto; padding-right: 4px; }
.manual-cap { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--turq); margin: 16px 0 6px; padding-bottom: 4px; border-bottom: 1px solid var(--border); }
.manual-cap:first-child { margin-top: 4px; }
.manual-item { padding: 8px 10px; border-radius: 10px; }
.manual-item:hover { background: color-mix(in srgb, var(--bg3) 70%, transparent); }
.manual-t { font-weight: 600; font-size: 13.5px; }
.manual-b { font-size: 13px; color: var(--muted); margin-top: 2px; line-height: 1.45; }
.manual-badge { display: inline-block; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; background: rgba(240,177,74,.16); color: #e0a63f; border: 1px solid rgba(240,177,74,.4); border-radius: 999px; padding: 1px 7px; margin-left: 6px; vertical-align: 1px; }

/* ====== v157 ====== */
/* janelinha: chamada inconfundivel, anel aceso no avatar e selo de estado */
.od-av.incall { box-shadow: 0 0 0 2px var(--turq), 0 0 10px rgba(72,158,169,.55); }
.od-row.incall { background: rgba(72,158,169,.08); border-radius: 8px; }
.od-emch { display: inline-block; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: #7fd7e2; background: rgba(72,158,169,.16); border: 1px solid rgba(72,158,169,.45); border-radius: 999px; padding: 1px 7px; margin-left: 6px; vertical-align: 1px; }
.od-emch.priv { color: #f2c48d; background: rgba(240,177,74,.14); border-color: rgba(240,177,74,.45); }
.od-mc-wrap { display: inline-flex; gap: 4px; margin-left: 6px; }
.od-mc.off { color: #fca5a5; }
.od-mc.on { color: #86efac; }

/* faixa de ambiente de desenvolvimento (SEG 027) */
.ambiente-faixa { position: fixed; left: 0; right: 0; top: 0; z-index: 9999; text-align: center; font-size: 12px; font-weight: 700; letter-spacing: .02em; padding: 4px 10px; background: repeating-linear-gradient(45deg, #4a3407, #4a3407 12px, #5a4110 12px, #5a4110 24px); color: #ffd88a; border-bottom: 1px solid #7a5a16; }

/* v159: a janela de geracao de pecas ocupa pelo menos metade da tela do notebook */
#pecasPanel { width: clamp(680px, 55vw, 1100px); }
#pecasPanel .side-body { padding: 20px 26px; }
#pecaTexto { min-height: 46vh; }
@media (max-width: 760px) { #pecasPanel { width: 100vw; } }

/* v159: numero do processo copiavel com um clique nos prazos sugeridos */
.sug-num { cursor: pointer; text-decoration: underline dotted; text-underline-offset: 3px; }
.sug-num:hover { color: var(--accent); }

/* v159: titulo do compromisso com rotulo proprio no modal da agenda */
.modal-head-col { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.modal-head-col label { font-size: 11px; color: var(--muted); }
.modal-head-col .obrig { color: #e5484d; }

/* v159: mencao com @ nos comentarios */
.mention { color: var(--accent); font-weight: 600; }
.mencao-sug { position: absolute; background: var(--panel); border: 1px solid var(--border); border-radius: 8px; box-shadow: var(--shadow); z-index: 90; max-height: 180px; overflow-y: auto; min-width: 180px; }
.mencao-sug div { padding: 7px 12px; cursor: pointer; font-size: 13px; }
.mencao-sug div:hover, .mencao-sug div.ativo { background: var(--bg2); }

/* v159: aviso em janela quando a pessoa vira responsavel ou chega urgencia */
.popup-aviso { position: fixed; inset: 0; background: rgba(0,0,0,.55); z-index: 120; display: flex; align-items: center; justify-content: center; }
.popup-aviso-box { background: var(--panel); border: 1px solid var(--border); border-radius: 14px; padding: 26px 30px; max-width: 440px; box-shadow: var(--shadow); }
.popup-aviso-box h3 { margin: 0 0 10px; font-size: 16px; }
.popup-aviso-box p { font-size: 14px; line-height: 1.5; margin: 0 0 16px; }

/* v159: selo de prioridade alta na lista da agenda */
.ag-prio-alta { background: #dc2626; color: #fff; font-size: 10px; font-weight: 700; padding: 1px 6px; border-radius: 6px; letter-spacing: .4px; }

/* v160: datas completas no cartao da tarefa */
.card-datas { display: flex; flex-direction: column; gap: 1px; margin-top: 5px; font-size: 10.5px; color: var(--muted); line-height: 1.35; }

/* v160: aviso fixo para quem esta apresentando a tela (a captura nao e reexibida) */
.vt-apresentando { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 4px; font-size: 13px; padding: 10px; background: linear-gradient(160deg, #123c42, #0A4D56); color: #dff3f5; border-radius: inherit; }
.vt-apresentando small { color: #9fc9cf; font-size: 11px; }

/* v160: prazo de colega a 1 dia de vencer, com oferta de ajuda */
.ag-de-outro { background: color-mix(in srgb, var(--accent) 7%, transparent); }
.ag-outro-hint { font-size: 11px; color: var(--accent); font-weight: 600; }
.ag-ajudar { white-space: nowrap; }
.rel-bom { color: #16a34a; font-weight: 700; }

/* v161: so a janela de Pecas e grande. Todos os demais paineis e janelas ficam
   pregados no tamanho classico, para nenhuma regra nova alargar nada por engano. */
.side-panel:not(#pecasPanel):not(#gamiPanel) { width: 420px; }
.modal { width: 560px; }
.small-modal { width: 380px; }
#dailyModal .modal { width: 380px; }
#dailyTexto { min-height: 150px; }
@media (max-width: 820px) { .side-panel:not(#pecasPanel):not(#gamiPanel) { width: 100vw; } }

/* v161: a equipe nao seleciona texto na tela; o admin sim. Campos de digitacao
   continuam normais para todos, senao ninguem escreve. */
body.sem-selecao { -webkit-user-select: none; user-select: none; }
body.sem-selecao input, body.sem-selecao textarea, body.sem-selecao [contenteditable="true"] { -webkit-user-select: text; user-select: text; }

/* v161: visao em lista unica do quadro */
.lista-unica { width: 100%; background: var(--panel); border: 1px solid var(--border); border-radius: 12px; overflow: hidden; align-self: flex-start; }
.lu-head, .lu-row { display: grid; grid-template-columns: minmax(200px, 2.2fr) 1.1fr 1fr 150px 150px; gap: 8px; align-items: center; padding: 8px 12px; }
.lu-head { background: var(--bg2); border-bottom: 1px solid var(--border); font-size: 12px; font-weight: 700; color: var(--muted); }
.lu-sort { background: none; border: none; color: var(--muted); font-weight: 700; font-size: 12px; text-align: left; cursor: pointer; padding: 0; }
.lu-sort:hover { color: var(--accent); }
.lu-row { border-bottom: 1px solid var(--border); cursor: pointer; font-size: 13px; }
.lu-row:hover { background: var(--bg2); }
.lu-row.done .lu-titulo { text-decoration: line-through; opacity: .65; }
.lu-data { font-size: 12px; color: var(--muted); white-space: nowrap; }
@media (max-width: 760px) { .lu-head, .lu-row { grid-template-columns: 1.6fr 1fr; } .lu-c:nth-child(n+3) { display: none; } }

/* v161: aprovacao do manual pelo admin */
.manual-aprova { margin-top: 6px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.manual-ok { font-size: 12px; color: #16a34a; font-weight: 600; }
.manual-ordem { padding: 2px 4px; }

/* v163: o painel de configuracao (trofeu), onde vive a secao do Banco do Brasil,
   ocupa metade da tela; o que nao couber ganha barra de rolagem embaixo. */
#gamiPanel { width: clamp(680px, 50vw, 1100px); }
#gamiPanel .side-body { overflow-x: auto; }
#gamiPanel .side-body section { min-width: 0; }
@media (max-width: 820px) { #gamiPanel { width: 100vw; } }

/* v165: aviso identificado com botao de abrir o item */
.popup-aviso-item { border-bottom: 1px solid var(--border); padding-bottom: 10px; margin-bottom: 10px; }
.popup-aviso-item p { margin-bottom: 8px; }
.notif-click { cursor: pointer; }
.notif-click:hover { background: var(--bg2); }

/* ===== v172: faixa de apresentacao, controles nas janelinhas e etiqueta da sala ===== */
.apresentando-faixa { position: fixed; left: 50%; transform: translateX(-50%); bottom: 18px; top: auto; z-index: 9998; display: flex; align-items: center; gap: 10px; padding: 8px 16px; border-radius: 999px; background: rgba(28, 30, 33, .96); color: #e8eaed; font-size: 13px; font-weight: 600; border: 1px solid rgba(255,255,255,.12); box-shadow: 0 8px 24px rgba(0,0,0,.45); }
.apresentando-faixa.hidden { display: none; }
.apresentando-faixa .af-dot { width: 9px; height: 9px; border-radius: 50%; background: #ef4444; animation: afPulsa 1.6s ease-in-out infinite; }
.apresentando-faixa button { background: #dc2626; color: #fff; border: none; border-radius: 999px; padding: 5px 14px; cursor: pointer; font-weight: 700; font-size: 12px; }
.apresentando-faixa button:hover { background: #ef4444; }
.apresentando-faixa button.ver { background: #0d9488; }
.apresentando-faixa button.ver:hover { background: #14b8a6; }
body.light .apresentando-faixa { background: rgba(32, 33, 36, .95); }
@keyframes afPulsa { 0%, 100% { opacity: 1; } 50% { opacity: .35; } } 50% { box-shadow: 0 6px 22px rgba(220,38,38,.55); } }
.float-ctrls { display: flex; gap: 6px; padding: 6px 8px; background: var(--bg2); border-top: 1px solid var(--border); flex-wrap: wrap; align-items: center; }
.float-ctrls:empty { display: none; }
.fc-btn { background: rgba(255,255,255,.08); border: 1px solid var(--border); color: var(--text); border-radius: 8px; padding: 4px 9px; cursor: pointer; font-size: 14px; line-height: 1; }
.fc-btn:hover { border-color: var(--turq); }
.fc-btn.off { background: #b91c1c; border-color: #b91c1c; color: #fff; }
.fc-btn.on { background: #166534; border-color: #166534; color: #fff; }
.fc-btn.ver { font-size: 12px; font-weight: 700; background: rgba(22,101,52,.3); }
.od-ctrls { display: inline-flex; gap: 4px; margin-left: 6px; }
.od-ctl { background: none; border: 1px solid var(--border); border-radius: 6px; cursor: pointer; padding: 2px 5px; display: inline-flex; align-items: center; color: var(--text); font-size: 12px; }
.od-ctl:hover { border-color: var(--turq); }
.od-ctl.on { background: #166534; border-color: #166534; }
.od-ver { display: block; width: calc(100% - 16px); margin: 2px 8px 8px; padding: 6px; border-radius: 8px; border: 1px solid rgba(22,101,52,.7); background: rgba(22,101,52,.22); color: var(--text); font-weight: 700; font-size: 12px; cursor: pointer; }
.od-ver:hover { background: rgba(22,101,52,.4); }
.online-dock.junto-float { right: 308px; bottom: 72px; }
#callSala.sala-priv { background: rgba(147,51,234,.16); color: #d8b4fe; border: 1px solid rgba(147,51,234,.5); border-radius: 8px; padding: 2px 8px; font-weight: 700; }
#callSala.sala-geral { background: rgba(13,148,136,.14); color: #5eead4; border: 1px solid rgba(13,148,136,.45); border-radius: 8px; padding: 2px 8px; font-weight: 700; }
body.light #callSala.sala-priv { color: #7e22ce; }
body.light #callSala.sala-geral { color: #0f766e; }
body.light .fc-btn { background: rgba(0,0,0,.05); }

/* ===== v173: cores por origem de campanha ===== */
.src-badge.src-google { background: rgba(66,133,244,.16); color: #8ab4f8; border: 1px solid rgba(66,133,244,.45); }
.src-badge.src-meta { background: rgba(147,51,234,.16); color: #d8b4fe; border: 1px solid rgba(147,51,234,.45); }
.src-badge.src-organico { background: rgba(34,197,94,.14); color: #86efac; border: 1px solid rgba(34,197,94,.4); }
body.light .src-badge.src-google { color: #1a56c4; }
body.light .src-badge.src-meta { color: #7e22ce; }
body.light .src-badge.src-organico { color: #15803d; }


/* ===== v175: desligar na janelinha e estados sempre visiveis na caixinha de online ===== */
.fc-btn.sair { background: #dc2626; border-color: #dc2626; color: #fff; margin-left: auto; }
.fc-btn.sair:hover { background: #ef4444; }


/* ===== v176: a caixinha de online e a unica janelinha da chamada ===== */
.od-callbar { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 10px; font-size: 12px; font-weight: 700; border-bottom: 1px solid var(--border, #243040); }
.od-callbar.on { background: rgba(22, 101, 52, .18); color: #86efac; }
.od-callbar.off { color: #8b95a5; }
.od-cb-info { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.od-cb-acts { display: inline-flex; gap: 6px; flex: none; }
.od-cb-btn { background: rgba(255,255,255,.08); border: 1px solid var(--border, #243040); color: var(--text, #e5e9f0); border-radius: 8px; padding: 3px 8px; cursor: pointer; font-size: 12px; font-weight: 700; }
.od-cb-btn:hover { border-color: var(--turq, #14b8a6); }
.od-cb-btn.sair { background: #dc2626; border-color: #dc2626; color: #fff; }
.od-cb-btn.sair:hover { background: #ef4444; }
.online-dock.junto-float { right: 16px; bottom: 16px; } /* v176: nao ha mais janela dupla */
.prz-link-row { display: flex; gap: 6px; align-items: center; }
.prz-link-row input { flex: 1; }
body.light .od-callbar.on { color: #15803d; }

/* ==== v178: Painel do Guardiao ==== */
.gd-titulo { font-size: 17px; margin: 0 12px 0 4px; white-space: nowrap; }
.gd-controles { display: flex; gap: 8px; align-items: center; margin-left: auto; }
.gd-controles input[type="month"] { background: var(--bg3); border: 1px solid var(--border); color: var(--text); border-radius: 8px; padding: 6px 8px; }
.gd-body { padding: 14px 0 60px; }
.gd-secao-rotulo { color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: .08em; margin: 6px 0 8px; }
.gd-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; margin: 0 0 18px; }
.gd-tile { background: var(--panel); border: 1px solid var(--border); border-radius: var(--radius); padding: 12px 14px; min-width: 0; }
.gd-tile-destaque { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent) inset; }
.gd-num { font-size: 26px; font-weight: 700; line-height: 1.15; }
.gd-rot { color: var(--muted); font-size: 12px; margin-top: 2px; }
.gd-sub { color: var(--muted); font-size: 11px; margin-top: 6px; }
.gd-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(330px, 1fr)); gap: 12px; margin-bottom: 12px; }
.gd-chart-box { background: var(--panel); border: 1px solid var(--border); border-radius: var(--radius); padding: 12px; min-width: 0; margin-bottom: 0; }
.gd-body > .gd-chart-box { margin-bottom: 12px; }
.gd-largo { grid-column: 1 / -1; }
.gd-chart { height: 250px; width: 100%; }
.gd-chart-alto { height: 400px; }
.gd-chart-tit { font-weight: 600; margin-bottom: 6px; font-size: 14px; }
.gd-chart-tit .hint { font-weight: 400; }
.gd-inv-form { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.gd-inv-form input, .gd-inv-form select { background: var(--bg3); border: 1px solid var(--border); color: var(--text); border-radius: 8px; padding: 7px 9px; width: auto; }
#gdInvData { width: 160px; }
#gdInvPlat { width: 150px; }
#gdInvCampanha { flex: 1; min-width: 180px; }
#gdInvValor { width: 150px; }
.gd-inv-form input::placeholder { color: var(--muted); }
.gd-table { width: 100%; }
.gd-table th { text-align: left; }
.gd-table td, .gd-table th { padding: 6px 8px; }
.gd-status { font-size: 12px; white-space: nowrap; }
.gd-ativa { color: var(--green); }
.gd-parada { color: var(--muted); }
.gd-plat { font-size: 12px; padding: 2px 8px; border-radius: 999px; border: 1px solid var(--border); white-space: nowrap; }
.gd-plat-google { color: #3987e5; border-color: #3987e5; }
.gd-plat-meta { color: #9085e9; border-color: #9085e9; }
body.light .gd-plat-google { color: #2a78d6; border-color: #2a78d6; }
body.light .gd-plat-meta { color: #4a3aa7; border-color: #4a3aa7; }
@media (max-width: 900px) { .gd-chart-alto { height: 300px; } .gd-titulo { display: none; } }

/* v179: seletor de periodo do Guardiao */
.gd-controles select, .gd-controles input[type="date"] { background: var(--bg3); border: 1px solid var(--border); color: var(--text); border-radius: 8px; padding: 6px 8px; }
.gd-intervalo { display: inline-flex; gap: 6px; }
#gdQuando { white-space: nowrap; }

/* v184: lista completa da agenda, tipo e observacoes por item */
.prazo-painel-row { display: flex; align-items: flex-start; gap: 10px; }
.prazo-painel-row .prazo-painel { flex: 1; min-width: 0; }
.prazo-painel-row #agListaBtn { margin: 8px 12px 0 0; white-space: nowrap; }
.ag-ltipo { font-size: 11px; font-weight: 700; color: var(--muted); border: 1px solid var(--border); border-radius: 6px; padding: 1px 7px; margin-right: 6px; white-space: nowrap; }
.ag-ltipo.t-anotacao { color: var(--teal); border-color: var(--teal); }
.ag-lobs { font-size: 12px; color: var(--muted); margin-top: 3px; white-space: pre-wrap; }

/* v184: entrar na sala geral direto da caixinha */
.od-cb-btn.entrar { background: var(--teal); border-color: var(--teal); color: #fff; }
.od-cb-btn.entrar:hover { filter: brightness(1.12); }
.od-callbar.off { display: flex; align-items: center; justify-content: space-between; gap: 8px; }

/* v184: janelinha das escalonadas em aberto */
.popup-escalonadas .popup-aviso-box { max-width: 560px; max-height: 80vh; overflow: auto; border-left: 4px solid #ef4444; }

/* v185: botao da conversa nas chegadas e contratos do Guardiao */
.gd-conversa { display: inline-block; background: var(--teal); color: #fff; border-radius: 8px; padding: 3px 10px; font-size: 12px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.gd-conversa:hover { filter: brightness(1.12); }
/* v191: pagina + botao de origem do lead (rastreio do Google/site) */
.gd-pagbotao { display: flex; flex-direction: column; gap: 3px; max-width: 320px; }
.gd-pag, .gd-botao { font-size: 12px; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gd-pag { color: var(--text); }
.gd-botao { color: var(--teal); font-weight: 700; }
/* v196: pills das demais dimensoes do clique do Google (sitelink, palavra-chave, anuncio, rede, dispositivo) */
.gd-dim { font-size: 12px; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text); }

/* v204: selos de decisao de escala no Painel do Guardiao */
.gd-rec{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:700;letter-spacing:.3px;white-space:nowrap;cursor:help}
.gd-rec-escalar{background:rgba(63,185,80,.18);color:#3fb950;border:1px solid rgba(63,185,80,.45)}
.gd-rec-manter{background:rgba(88,166,255,.15);color:#58a6ff;border:1px solid rgba(88,166,255,.4)}
.gd-rec-observar{background:rgba(139,148,158,.15);color:#8b949e;border:1px solid rgba(139,148,158,.4)}
.gd-rec-revisar{background:rgba(210,153,34,.18);color:#d29922;border:1px solid rgba(210,153,34,.45)}
.gd-rec-pausar{background:rgba(248,81,73,.15);color:#f85149;border:1px solid rgba(248,81,73,.45)}

/* v205: formulario de origem manual do guardiao */
.origem-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:6px}
.origem-grid input,.origem-grid select{min-width:0}
#origemBox .hint{font-size:11px}

/* v206: guardiao copia qualquer texto do kanban */
body.guardiao-copia, body.guardiao-copia * { -webkit-user-select: text !important; -moz-user-select: text !important; user-select: text !important; }
/* v206: numero da ficha no topo do modal (so guardiao) */
.card-num { flex: 0 0 auto; margin: 0 8px; padding: 2px 10px; border-radius: 999px; background: rgba(88,166,255,.12); color: #58a6ff; border: 1px solid rgba(88,166,255,.35); font-size: 12px; font-weight: 700; cursor: copy; white-space: nowrap; }
/* v206: dropdown da busca de duplicatas dentro da ficha */
.reunir-drop { position: absolute; left: 0; right: 0; z-index: 40; margin-top: 4px; background: var(--panel, #161b22); border: 1px solid var(--border, #30363d); border-radius: 8px; max-height: 220px; overflow: auto; box-shadow: 0 8px 24px rgba(0,0,0,.4); }
.reunir-item { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 10px; border-bottom: 1px solid var(--border, #30363d); font-size: 13px; }
.reunir-item:last-child { border-bottom: none; }
.reunir-info { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* v207: filtro por dia de chegada na busca de fichas */
.ficha-busca-linha { display: flex; gap: 6px; align-items: center; }
.ficha-busca-linha .ficha-busca-input { flex: 1 1 auto; min-width: 120px; }
.ficha-dia-sel, .ficha-dia-data { flex: 0 0 auto; background: var(--panel, #161b22); color: inherit; border: 1px solid var(--border, #30363d); border-radius: 8px; padding: 6px 8px; font-size: 13px; }
/* v207: selos de conversao devolvida por linha */
.gd-conv { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 11px; font-weight: 700; white-space: nowrap; cursor: help; }
.gd-conv-ok { background: rgba(63,185,80,.16); color: #3fb950; border: 1px solid rgba(63,185,80,.4); }
.gd-conv-warn { background: rgba(210,153,34,.16); color: #d29922; border: 1px solid rgba(210,153,34,.45); }
.gd-conv-err { background: rgba(248,81,73,.15); color: #f85149; border: 1px solid rgba(248,81,73,.45); }
.gd-contrato-sim { color: #3fb950; font-weight: 700; white-space: nowrap; }
.gd-ficha-btn { background: rgba(88,166,255,.12); color: #58a6ff; border: 1px solid rgba(88,166,255,.35); border-radius: 8px; padding: 3px 8px; font-size: 12px; font-weight: 700; cursor: pointer; white-space: nowrap; }
.gd-ficha-btn:hover { background: rgba(88,166,255,.25); }

/* ==== v216: semaforo de conexao das chamadas (vermelho / amarelo / verde) ==== */
.conn-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; flex: 0 0 auto; vertical-align: middle; box-shadow: 0 0 0 2px rgba(0,0,0,.15); }
.conn-dot.od-conn { margin-right: 5px; }
.conn-verm { background: #ef4444; }
.conn-amar { background: #f59e0b; animation: connPulsa 1s ease-in-out infinite; }
.conn-verd { background: #22c55e; }
@keyframes connPulsa { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
.vt-conn { position: absolute; top: 8px; left: 8px; width: 10px; height: 10px; z-index: 3; }

/* ==== v216: menu de motivo (tag) na ficha ==== */
.motivo-menu { position: absolute; z-index: 60; background: var(--panel, #16202b); border: 1px solid var(--border, #243040); border-radius: 10px; box-shadow: 0 10px 30px rgba(0,0,0,.4); padding: 6px; min-width: 250px; max-width: 320px; }
.motivo-item { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 8px; cursor: pointer; font-size: 13px; }
.motivo-item:hover { background: rgba(255,255,255,.06); }
.motivo-item .mi-check { width: 16px; flex: 0 0 auto; color: #22c55e; font-weight: 700; }
.motivo-item.on { color: #22c55e; }
.motivo-outro-desc { margin-top: 4px; padding: 8px 10px; }
.motivo-outro-desc input { width: 100%; }
.motivo-hint { padding: 6px 10px 4px; font-size: 11px; color: var(--muted, #8aa0b5); border-top: 1px solid var(--border, #243040); margin-top: 4px; }

/* ==== v217: visao das salas na janelinha (guardiao) ==== */
.od-salas { padding: 6px 8px; margin: 4px 0 6px; border: 1px dashed var(--border, #243040); border-radius: 8px; font-size: 12px; display: flex; flex-direction: column; gap: 3px; }
.od-sala { line-height: 1.35; }
.od-sala.priv { color: #eab308; }
.od-sala-vazia { color: var(--muted, #8aa0b5); font-style: italic; }

/* v224: lápis de edição no chip da agenda (o clique no chip abre a ficha do processo) */
.ag-chip { position: relative; }
.ag-chip-edit { display: none; position: absolute; right: 3px; top: 2px; font-size: 10px; opacity: .8; cursor: pointer; }
.ag-chip:hover .ag-chip-edit { display: inline; }
.ag-chip-edit:hover { opacity: 1; transform: scale(1.15); }

/* v225: ficha da tarefa do kanban centralizada na metade da tela (pedido do José, 06/08) */
#cardModal .modal { width: 50vw; max-width: 50vw; height: 50vh; max-height: 50vh; }
@media (max-width: 900px) { #cardModal .modal { width: 96vw; max-width: 96vw; height: auto; max-height: 92vh; } }

/* v226: mão levantada nas chamadas */
.video-tile.mao-up::after { content: '✋'; position: absolute; top: 6px; right: 8px; font-size: 22px; filter: drop-shadow(0 1px 2px rgba(0,0,0,.6)); animation: maoPulse 1.2s ease-in-out infinite; }
@keyframes maoPulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.18); } }
.od-cb-btn.ativa { background: #f59e0b; color: #111; }

/* v229: links rapidos (ChatGuru e Drive) no topo da ficha do kanban */
.card-top-links { display: flex; gap: 8px; flex-wrap: wrap; padding: 8px 20px 0; }
.card-top-links .top-link { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; font-weight: 600;
  padding: 4px 10px; border-radius: 999px; background: rgba(45, 212, 191, .12); border: 1px solid rgba(45, 212, 191, .35);
  color: inherit; text-decoration: none; max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.card-top-links .top-link:hover { background: rgba(45, 212, 191, .22); }


/* ====== v246: enquadramento ======
   A linha das abas (tabs-row) era nowrap com as abas sem encolher e a busca com largura minima;
   com a aba "6 Descumprimento de Acordo" a linha ficou mais larga que a janela, o documento cresceu
   para a direita e o foco na busca rolava a pagina inteira (cortava a esquerda). Agora a linha
   nunca passa da janela: as abas rolam dentro dela, a busca tem largura fixa, e html/body nao rolam. */
html, body { overflow: hidden; max-width: 100%; }
#app { width: 100%; max-width: 100vw; overflow: hidden; }
.tabs-row { width: 100%; max-width: 100vw; overflow: hidden; flex: 0 0 auto; }
.tabs-row .list-tabs { flex: 1 1 auto; min-width: 0; overflow-x: auto; overflow-y: hidden; flex-wrap: nowrap; scrollbar-width: thin; }
.tabs-row .list-tabs .tab { white-space: nowrap; flex: 0 0 auto; }
.ficha-busca-wrap { flex: 0 0 280px; max-width: 280px; }
@media (max-width: 1100px) { .ficha-busca-wrap { flex-basis: 200px; max-width: 200px; } }
.topbar { width: 100%; max-width: 100vw; }

/* ====== v246: skins ====== */
/* Petroleo: fundo no petroleo da paleta (#0A4D56), detalhes em turquesa (#489EA9) */
body.theme-petroleo {
  --bg: #05262b;
  --bg2: #0A4D56;
  --bg3: #0f616c;
  --panel: #083f47;
  --border: #1f7b88;
  --text: #eef7f8;
  --muted: #a9d3d9;
  --accent: #489EA9;
  --accent2: #6fc0ca;
  --teal: #489EA9;
  --shadow: 0 8px 30px rgba(0,0,0,.5);
}
body.theme-petroleo .topbar { background: #083f47; }
body.theme-petroleo .list-tabs { background: #05262b; }
body.theme-petroleo .list-tabs .tab.active { background: #489EA9; border-color: #489EA9; color: #05262b; }
body.theme-petroleo .list { background: #0A4D56; border-color: #1f7b88; }
body.theme-petroleo .card { background: #0f616c; border-color: #2a8d9a; }
body.theme-petroleo .login-screen { background: radial-gradient(circle at 30% 20%, #0f616c, #05262b); }

/* Turquesa: claro, com fundo turquesa suave e barras em turquesa cheia */
body.theme-turquesa {
  --bg: #cfe7ea;
  --bg2: #ffffff;
  --bg3: #b5dadf;
  --panel: #ffffff;
  --border: #7fbcc4;
  --text: #0A4D56;
  --muted: #3b7780;
  --accent: #489EA9;
  --accent2: #0A4D56;
  --teal: #0A4D56;
  --shadow: 0 8px 30px rgba(10,77,86,.22);
}
body.theme-turquesa .topbar { background: #489EA9; border-color: #3b8a94; color: #fff; }
body.theme-turquesa .topbar .btn { background: rgba(255,255,255,.88); color: #0A4D56; border-color: rgba(255,255,255,.6); }
body.theme-turquesa .topbar .brand { background: #489EA9; color: #fff; }
body.theme-turquesa .list-tabs { background: #cfe7ea; }
body.theme-turquesa .list-tabs .tab.active { background: #0A4D56; color: #fff; }
body.theme-turquesa .list { background: #e9f5f6; border-color: #7fbcc4; }
body.theme-turquesa .card { background: #ffffff; border-color: #9dcbd1; }
body.theme-turquesa .login-screen { background: radial-gradient(circle at 30% 20%, #489EA9, #cfe7ea); }

/* Preto: preto puro em tudo, so linhas e texto */
body.theme-preto {
  --bg: #000000;
  --bg2: #000000;
  --bg3: #1a1a1a;
  --panel: #000000;
  --border: #4d4d4d;
  --text: #ffffff;
  --muted: #bfbfbf;
  --accent: #ffffff;
  --accent2: #d9d9d9;
  --teal: #ffffff;
  --turq: #ffffff;
  --shadow: 0 8px 30px rgba(0,0,0,.9);
}
body.theme-preto .topbar, body.theme-preto .list-tabs, body.theme-preto .topbar .brand { background: #000; }
body.theme-preto .list { background: #000; border-color: #4d4d4d; }
body.theme-preto .card { background: #000; border-color: #666; }
body.theme-preto .btn, body.theme-preto .topbar .btn { background: #000; border-color: #666; color: #fff; }
body.theme-preto .btn:hover { background: #1a1a1a; }
body.theme-preto .btn.primary, body.theme-preto .list-tabs .tab.active { background: #fff; border-color: #fff; color: #000; }
body.theme-preto .login-screen { background: #000; }
body.theme-preto .login-box button { background: #fff; color: #000; }

/* Branco: branco puro em tudo, texto e linhas pretas */
body.theme-branco {
  --bg: #ffffff;
  --bg2: #ffffff;
  --bg3: #ebebeb;
  --panel: #ffffff;
  --border: #8c8c8c;
  --text: #000000;
  --muted: #3d3d3d;
  --accent: #000000;
  --accent2: #333333;
  --teal: #000000;
  --turq: #000000;
  --shadow: 0 8px 30px rgba(0,0,0,.18);
}
body.theme-branco .topbar, body.theme-branco .list-tabs, body.theme-branco .topbar .brand { background: #fff; border-color: #8c8c8c; }
body.theme-branco .list { background: #fff; border-color: #8c8c8c; }
body.theme-branco .card { background: #fff; border-color: #8c8c8c; }
body.theme-branco .btn, body.theme-branco .topbar .btn { background: #fff; border-color: #8c8c8c; color: #000; }
body.theme-branco .btn:hover { background: #ebebeb; }
body.theme-branco .btn.primary, body.theme-branco .list-tabs .tab.active { background: #000; border-color: #000; color: #fff; }
body.theme-branco .login-screen { background: #fff; }
body.theme-branco .login-box button { background: #000; color: #fff; }

/* Menu de temas */
.tema-menu { position: fixed; z-index: 400; background: var(--panel); border: 1px solid var(--border); border-radius: 10px; box-shadow: var(--shadow); padding: 6px; display: grid; grid-template-columns: 1fr 1fr; gap: 2px; min-width: 300px; }
.tema-menu .tema-opt { display: flex; align-items: center; gap: 8px; background: transparent; border: none; color: var(--text); text-align: left; padding: 8px 10px; border-radius: 8px; font-size: 13px; white-space: nowrap; }
.tema-menu .tema-opt:hover { background: var(--bg3); }
.tema-menu .tema-opt.ativo { outline: 2px solid var(--accent); outline-offset: -2px; }
.tema-amostra { width: 18px; height: 18px; border-radius: 50%; border: 1px solid rgba(127,127,127,.6); flex: 0 0 auto; }
.tema-amostra-dark { background: linear-gradient(135deg, #0e1117 50%, #489EA9 50%); }
.tema-amostra-light { background: linear-gradient(135deg, #f4f6f8 50%, #489EA9 50%); }
.tema-amostra-petroleo { background: linear-gradient(135deg, #05262b 50%, #0A4D56 50%); }
.tema-amostra-turquesa { background: linear-gradient(135deg, #cfe7ea 50%, #489EA9 50%); }
.tema-amostra-preto { background: #000; }
.tema-amostra-branco { background: #fff; }
