:root{color-scheme:dark}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:#05070d;color:#c9d1d9;font-family:"JetBrains Mono","IBM Plex Mono","SF Mono",Consolas,monospace;font-size:12px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.clickable{cursor:pointer;transition:filter .12s}
.clickable:hover{filter:brightness(1.15)}

.hl-amber{color:#f5a623}.hl-cyan{color:#4f9cf9}.hl-green{color:#22c55e}.hl-red{color:#ef4444}.hl-yellow{color:#facc15}.hl-muted{color:#6b7280}.hl-dim{color:#94a3b8}.hl-violet{color:#a78bfa}

/* TOPBAR */
.topbar{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;background:#0a0e1a;border-bottom:1px solid #f5a623;font-size:11px;letter-spacing:.06em;text-transform:uppercase}
.topbar .meta{flex-shrink:0}
.topbar .brand{display:flex;align-items:center;gap:10px;font-weight:700;white-space:nowrap;flex-shrink:0}
.topbar .brand .mark{width:38px;height:38px;display:grid;place-items:center;filter:drop-shadow(0 0 4px rgba(245,166,35,.35))}
.topbar .brand .mark img{width:100%;height:100%;object-fit:contain}
.topbar .brand .ver{color:#6b7280;font-weight:400;display:block;font-size:.92em}
.topbar .meta{display:flex;gap:12px;color:#6b7280;align-items:center}
.topbar .meta .status{color:#f5a623;display:flex;align-items:center;gap:6px}
.topbar .meta .status::before{content:"";width:6px;height:6px;background:#f5a623;border-radius:50%;box-shadow:0 0 8px #f5a623}
/* Pill SYNC UMBLER - mostra status do sync externo com cor por idade */
.sync-pill{padding:4px 8px;border-radius:2px;font-size:9px;letter-spacing:.1em;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:5px;text-transform:uppercase;transition:opacity .1s}
.sync-pill::before{content:"";width:6px;height:6px;border-radius:50%;display:inline-block}
.sync-pill:hover{opacity:.8}
.sync-pill.sync-ok{background:rgba(34,197,94,.1);color:#22c55e;border:1px solid rgba(34,197,94,.3)}
.sync-pill.sync-ok::before{background:#22c55e;box-shadow:0 0 6px #22c55e}
.sync-pill.sync-warn{background:rgba(245,166,35,.1);color:#f5a623;border:1px solid rgba(245,166,35,.3)}
.sync-pill.sync-warn::before{background:#f5a623;box-shadow:0 0 6px #f5a623}
.sync-pill.sync-stale{background:rgba(239,68,68,.15);color:#ef4444;border:1px solid #ef4444;animation:syncBlink 2s infinite}
.sync-pill.sync-stale::before{background:#ef4444;box-shadow:0 0 8px #ef4444}
@keyframes syncBlink{50%{opacity:.6}}
.sync-pill.sync-never{background:rgba(107,114,128,.1);color:#94a3b8;border:1px solid #4b5563}
.sync-pill.sync-never::before{background:#6b7280}
.sync-pill.sync-unknown{background:rgba(107,114,128,.1);color:#6b7280;border:1px solid #4b5563}
.sync-pill.sync-unknown::before{background:#6b7280}
.topbar .meta .status.live{color:#22c55e}
.topbar .meta .status.live::before{background:#22c55e;box-shadow:0 0 8px #22c55e}
.topbar .meta .status.err{color:#ef4444}
.topbar .meta .status.err::before{background:#ef4444;box-shadow:0 0 8px #ef4444}
.topbar .meta .pill{padding:2px 8px;background:#061612;color:#4ade80;border:1px solid #0d382d;border-radius:2px;font-size:10px;letter-spacing:.04em}
.topbar .btn{background:#f5a623;color:#05070d;border:0;padding:7.5px 11px;font:inherit;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border-radius:2px;font-size:10px;white-space:nowrap}
.topbar .btn:hover{background:#fbbf24}
.topbar .btn:disabled{background:#6b7280;cursor:wait;color:#0a0e1a}
.topbar .btn.ghost{background:transparent;color:#6b7280;border:1px solid #1f2937}
.topbar .btn.ghost.active{color:#f5a623;border-color:#f5a623}
.topbar .btn.ghost:hover{color:#f5a623;border-color:#f5a623}
/* Abas: rolam horizontalmente quando nao cabem (barra invisivel estilo macOS,
   aparece fina so no hover). Brand fica fixo a esquerda, meta fixo a direita. */
.tabrow{display:flex;gap:2px;flex:1 1 auto;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;padding:2px 4px;margin:0 6px}
.tabrow::-webkit-scrollbar{height:0}
.tabrow:hover{scrollbar-width:thin}
.tabrow:hover::-webkit-scrollbar{height:4px}
.tabrow::-webkit-scrollbar-thumb{background:#1f2937;border-radius:2px}
.tabrow::-webkit-scrollbar-thumb:hover{background:#f5a623}

/* TICKER */
.ticker{display:flex;overflow:hidden;background:#080b13;border-bottom:1px solid #1f2937;padding:7px 0;white-space:nowrap}
.ticker-track{display:inline-flex;animation:tick 70s linear infinite;gap:44px;padding:0 22px}
.ticker-track:hover{animation-play-state:paused}
.ticker-item{display:inline-flex;gap:10px;align-items:baseline;font-size:11px;cursor:pointer}
.ticker-item:hover .tk{color:#f5a623}
.ticker-item .tk{color:#6b7280;letter-spacing:.1em;transition:color .1s}
.ticker-item .vl{color:#e5e7eb;font-weight:600}
.ticker-item .vl.red{color:#ef4444}
.ticker-item .vl.green{color:#22c55e}
.ticker-item .vl.amber{color:#f5a623}
@keyframes tick{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* WRAP */
.wrap{display:grid;grid-template-columns:repeat(12,1fr);gap:2px;background:#11151f;padding:2px}
.panel{background:#0a0e1a;padding:18px 20px 16px;position:relative}
.panel h2{font-size:10px;letter-spacing:.22em;color:#f5a623;font-weight:600;text-transform:uppercase;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.panel h2 .sub{color:#6b7280;font-weight:400;letter-spacing:.04em;text-transform:none;font-size:10px}
.panel .corner{position:absolute;top:0;right:0;font-size:9px;color:#6b7280;padding:6px 10px;letter-spacing:.14em}
.c-3{grid-column:span 3}.c-4{grid-column:span 4}.c-5{grid-column:span 5}.c-6{grid-column:span 6}.c-7{grid-column:span 7}.c-8{grid-column:span 8}.c-9{grid-column:span 9}.c-12{grid-column:span 12}

/* HERO */
.hero-a{background:linear-gradient(180deg,#2a0808 0%,#0a0e1a 100%);border:1px solid #ef4444}
.hero-a h2{color:#ef4444}
.hero-a .num{font-size:64px;line-height:1;font-weight:500;color:#ef4444;letter-spacing:-0.03em;margin-top:6px;font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:12px;cursor:pointer}
.hero-a .num .of{font-size:20px;color:#fca5a5;font-weight:400}
.hero-a .lbl{font-size:12px;color:#fca5a5;margin-top:8px;letter-spacing:.04em}
.hero-a .fine{margin-top:14px;padding-top:12px;border-top:1px dashed rgba(239,68,68,.3);font-size:11px;color:#94a3b8;line-height:1.6}
.hero-a .fine b{color:#fca5a5}
.hero-a .fine .kv{display:inline-block;margin-right:14px;cursor:pointer;transition:filter 120ms ease}
.hero-a .fine .kv:hover{filter:brightness(1.12)}
.hero-a .fine .kv:hover b{color:#f5a623}

.hero-b{background:linear-gradient(180deg,#3b1a08 0%,#0a0e1a 100%);border:1px solid #f5a623}
.hero-b h2{color:#f5a623}
.hero-b .num{font-size:64px;line-height:1;font-weight:500;color:#f5a623;letter-spacing:-0.03em;margin-top:6px;font-variant-numeric:tabular-nums;cursor:pointer}
.hero-b .lbl{font-size:12px;color:#fbbf24;margin-top:8px;letter-spacing:.04em}
.hero-b .split{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:16px;padding-top:14px;border-top:1px dashed rgba(245,166,35,.25)}
.hero-b .split .cell{cursor:pointer;padding:4px 6px;margin:-4px -6px;border-radius:3px;transition:background .1s}
.hero-b .split .cell:hover{background:rgba(245,166,35,0.08)}
.hero-b .split .kk{font-size:9px;color:#6b7280;letter-spacing:.14em;text-transform:uppercase}
.hero-b .split .vv{font-size:22px;color:#fff;margin-top:4px;font-variant-numeric:tabular-nums;font-weight:500}
.hero-b .split .vv.hl{color:#f5a623}.hero-b .split .vv.gr{color:#10b981}.hero-b .split .vv.rd{color:#ef4444}

.hero-churn{background:linear-gradient(180deg,#2a0a1a 0%,#0a0e1a 100%);border:1px solid #f43f5e}
.hero-churn h2{color:#f43f5e}
.hero-churn .num{font-size:64px;line-height:1;font-weight:500;color:#f43f5e;letter-spacing:-0.03em;margin-top:4px;font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:10px;cursor:pointer}
.hero-churn.severe{animation:syncBlink 2.4s ease-in-out infinite;border-color:#ef4444}
.hero-churn .num .of{font-size:17px;color:#fda4af;font-weight:400}
.hero-churn .num .pct{font-size:14px;color:#fda4af;font-weight:500;letter-spacing:.04em}
.hero-churn .lbl{font-size:11px;color:#fda4af;margin-top:8px;letter-spacing:.04em}
.hero-churn .chip-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.hero-churn .chip{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;background:#080b13;border:1px solid #1f2937;border-radius:2px;font-size:10px;color:#94a3b8;cursor:pointer;transition:filter 120ms ease}
.hero-churn .chip:hover{border-color:#f43f5e;color:#fda4af;filter:brightness(1.12)}
.hero-churn .chip b{color:#fff;font-variant-numeric:tabular-nums}

/* ALERTS ROW */
.alerts-row{display:grid;grid-template-columns:repeat(6,1fr);gap:2px;background:#11151f;padding:2px;margin-top:0}
.alert-cell{background:#0a0e1a;padding:12px 14px;cursor:pointer;border-top:2px solid #1f2937;transition:background .1s,filter 120ms ease}
.alert-cell:hover{background:#0e1320;filter:brightness(1.12)}
.alert-cell .kk{font-size:9px;color:#6b7280;letter-spacing:.14em;text-transform:uppercase}
.alert-cell .vv{font-size:22px;margin-top:6px;font-variant-numeric:tabular-nums;font-weight:500;color:#e5e7eb}
.alert-cell.severe{border-top-color:#ef4444}.alert-cell.severe .vv{color:#ef4444}
.alert-cell.warn{border-top-color:#f5a623}.alert-cell.warn .vv{color:#f5a623}
.alert-cell.info{border-top-color:#4f9cf9}.alert-cell.info .vv{color:#4f9cf9}
.alert-cell.ok{border-top-color:#22c55e;opacity:.55}.alert-cell.ok .vv{color:#22c55e}

/* FUNNEL */
.funnel{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-top:6px}
.funnel-cell{background:#080b13;border:1px solid #1f2937;padding:10px 10px;cursor:pointer;position:relative;transition:all .1s}
.funnel-cell:hover{border-color:#f5a623;background:#0e1320}
.funnel-cell .kk{font-size:8px;color:#6b7280;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.funnel-cell .vv{font-size:20px;color:#e5e7eb;margin-top:4px;font-variant-numeric:tabular-nums;font-weight:500}
.funnel-cell .pct{font-size:9px;color:#6b7280;margin-top:2px}
.funnel-cell.gr .vv{color:#22c55e}
.funnel-cell.am .vv{color:#f5a623}
.funnel-cell.bl .vv{color:#4f9cf9}
.funnel-cell.pr .vv{color:#a78bfa}
.funnel-cell .spark{height:14px;margin:4px 0 2px;opacity:0.55;transition:opacity 120ms ease}
.funnel-cell:hover .spark{opacity:0.9}
.funnel-cell .spark svg{width:100%;max-width:36px;height:14px;display:block}
.funnel-cell .trend{font-size:9px;letter-spacing:.05em;margin-left:6px;font-variant-numeric:tabular-nums;vertical-align:1px}
.funnel-cell .trend.up{color:#22c55e}
.funnel-cell .trend.down{color:#ef4444}
.funnel-cell .trend.flat{color:#6b7280}
.funnel-stat{display:flex;gap:20px;margin-top:12px;padding-top:12px;border-top:1px dashed #1f2937;font-size:10px;color:#94a3b8;letter-spacing:.08em}
.funnel-stat b{color:#22c55e;font-variant-numeric:tabular-nums;font-size:14px}

/* TIMELINE */
.timeline{display:grid;grid-template-columns:repeat(13,1fr);gap:2px;padding:2px;background:#11151f}
.tl-cell{background:#0a0e1a;padding:12px 10px;cursor:pointer;transition:background .1s;border-top:2px solid #1f2937}
.tl-cell:hover{background:#0e1320}
.tl-cell.now{border-top-color:#f5a623;background:linear-gradient(180deg,#1f1008 0%,#0a0e1a 100%)}
.tl-cell.next{border-top-color:#4f9cf9}
.tl-cell.later{border-top-color:#2a3142}
.tl-cell.past{border-top-color:#4b5563;opacity:.6}
.tl-cell.expired{border-top-color:#ef4444;background:linear-gradient(180deg,#1a0606 0%,#0a0e1a 100%)}
.tl-cell.unknown{border-top-color:#f43f5e;background:linear-gradient(180deg,#1a0a13 0%,#0a0e1a 100%)}
.tl-cell .mo{font-size:10px;color:#6b7280;letter-spacing:.14em;text-transform:uppercase}
.tl-cell .cnt{font-size:26px;color:#e5e7eb;font-weight:500;margin-top:6px;font-variant-numeric:tabular-nums}
.tl-cell.now .cnt{color:#f5a623}.tl-cell.next .cnt{color:#4f9cf9}.tl-cell.expired .cnt{color:#ef4444}.tl-cell.unknown .cnt{color:#f43f5e}
.tl-cell .dsc{font-size:9px;color:#6b7280;margin-top:4px;letter-spacing:.04em}

/* TABLE */
.tbl{width:100%;border-collapse:collapse;font-size:11px}
.tbl th{text-align:left;padding:8px 10px;color:#6b7280;font-weight:500;font-size:11px;letter-spacing:.14em;text-transform:uppercase;border-bottom:1px solid #1f2937;background:#080b13}
.tbl td{padding:8px 10px;border-bottom:1px solid #11151f;vertical-align:top}
.tbl tr:hover td{background:#080b13}
.tbl .num{text-align:right;font-variant-numeric:tabular-nums;font-weight:500}
.tbl .cli{color:#94a3b8;font-size:10px}
.tbl .cli a{color:#c9d1d9;border-bottom:1px dotted #374151}
.tbl .cli a:hover{color:#f5a623;border-bottom-color:#f5a623}

/* CHART */
.chart-wrap{position:relative;height:260px}

/* SUMMARY */
.summary{background:#080b13;border:1px solid #1f2937;padding:14px 18px;font-size:11px;line-height:1.7;color:#94a3b8}
.summary b{color:#e5e7eb}
.summary .hl-amber{color:#f5a623}
.summary .hl-red{color:#ef4444}
.summary .hl-green{color:#22c55e}

/* TOAST */
.toast{position:fixed;bottom:24px;right:24px;background:#0a0e1a;border:1px solid #f5a623;color:#f5a623;padding:12px 18px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;z-index:99;transform:translateY(8px);opacity:0;transition:.2s}
.toast.show{transform:translateY(0);opacity:1}
.toast.err{border-color:#ef4444;color:#ef4444}
.toast.ok{border-color:#22c55e;color:#22c55e}

/* MODAL DRILL-DOWN */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.75);display:none;align-items:flex-start;justify-content:center;z-index:100;padding:40px 20px;overflow-y:auto}
.modal.open{display:flex}
.modal-box{background:#0a0e1a;border:1px solid #f5a623;max-width:960px;width:100%;max-height:90vh;overflow:auto;padding:22px 26px}
.modal-box h3{color:#f5a623;font-size:13px;letter-spacing:.14em;margin-bottom:6px;text-transform:uppercase;display:flex;justify-content:space-between;align-items:center;gap:12px}
.modal-box h3 .x{color:#6b7280;cursor:pointer;font-size:20px;padding:0 8px}
.modal-box h3 .x:hover{color:#ef4444}
.modal-box .modal-sub{color:#6b7280;font-size:10px;margin-bottom:14px;letter-spacing:.06em}
.modal-box .modal-search{width:100%;background:#080b13;border:1px solid #1f2937;color:#e5e7eb;padding:8px 12px;font:inherit;font-size:11px;margin-bottom:12px;letter-spacing:.04em}
.modal-box .modal-search:focus{outline:none;border-color:#f5a623}
.modal-tabs{display:flex;gap:2px;margin-bottom:10px;flex-wrap:wrap}
.modal-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:2px;margin-bottom:10px;background:#11151f;padding:2px}
.modal-kpi{background:#080b13;padding:8px 10px;border-top:2px solid #1f2937;transition:background .1s;min-width:0}
.modal-kpi:not(.clickable){cursor:default;opacity:0.85}
.modal-kpi.clickable{cursor:pointer}
.modal-kpi.clickable:hover{background:#0d1220}
.modal-kpi.active{border-top-color:#f5a623;background:#1f1008}
.modal-kpi .kk{font-size:9px;color:#6b7280;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.modal-kpi .vv{font-size:18px;color:#e5e7eb;margin-top:2px;font-variant-numeric:tabular-nums;font-weight:500}
.modal-kpi.severe{border-top-color:#ef4444}.modal-kpi.severe .vv{color:#ef4444}
.modal-kpi.warn{border-top-color:#f5a623}.modal-kpi.warn .vv{color:#f5a623}
.modal-kpi.info{border-top-color:#4f9cf9}.modal-kpi.info .vv{color:#4f9cf9}
.modal-kpi.ok{border-top-color:#22c55e}.modal-kpi.ok .vv{color:#22c55e}
.modal-tab{background:#080b13;border:1px solid #1f2937;padding:4px 10px;color:#6b7280;font-size:10px;letter-spacing:.08em;cursor:pointer;text-transform:uppercase}
.modal-tab.active{background:#f5a623;color:#05070d;border-color:#f5a623}
.modal-tab:hover{color:#f5a623;border-color:#f5a623}
.modal-tab.active:hover{color:#05070d}
.mtbl{width:100%;border-collapse:collapse;font-size:11px}
.mtbl th{background:#080b13;padding:8px 10px;text-align:left;color:#6b7280;font-size:11px;letter-spacing:.14em;text-transform:uppercase;border-bottom:1px solid #1f2937;position:sticky;top:0}
.mtbl td{padding:7px 10px;border-bottom:1px solid #11151f;vertical-align:middle;font-size:11px}
.mtbl td.name a{color:#e5e7eb;text-decoration:none;border-bottom:1px dotted #374151}
.mtbl td.name a:hover{color:#f5a623;border-bottom-color:#f5a623}
.mtbl td.month{font-family:"JetBrains Mono",monospace;font-size:12px;letter-spacing:.08em;color:#f5a623}
.mtbl td.month.sem{color:#f43f5e}
.mtbl td.list{font-size:12px;color:#94a3b8;white-space:nowrap}
.mtbl td.tlist{font-family:"JetBrains Mono",monospace;font-size:12px;color:#94a3b8;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.mtbl td.tlist.warn{color:#f5a623}
.mtbl td.tlist.alert{color:#ef4444;font-weight:500}
.mtbl td.tlist.sem{color:#4b5563}
/* WhatsApp (UmblerTalk) - dias desde ultima msg: ok <=2d / warn 3-5d / alert >=6d / sem match */
.mtbl td.wpp{font-family:"JetBrains Mono",monospace;font-size:12px;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.mtbl td.wpp a{color:inherit;text-decoration:none;border-bottom:1px dotted currentColor}
.mtbl td.wpp a:hover{opacity:.85}
.mtbl td.wpp.ok{color:#22c55e}
.mtbl td.wpp.warn{color:#f5a623}
.mtbl td.wpp.alert{color:#ef4444;font-weight:500}
.mtbl td.wpp.sem{color:#4b5563}
.mtbl td.labels{font-size:11px;color:#6b7280}
.mtbl td.labels .lb{display:inline-block;padding:1px 5px;background:#080b13;border:1px solid #1f2937;margin:1px;border-radius:2px;color:#94a3b8}
.mtbl td.labels .lb.alert{border-color:#ef4444;color:#fca5a5}
.mtbl td.labels .lb.warn{border-color:#f5a623;color:#fbbf24}
.mtbl .link{font-size:11px;text-align:right}
.mtbl .link a{color:#4f9cf9;border-bottom:1px dotted #1e3a5f;font-weight:500}
.mtbl .link a:hover{color:#f5a623;border-bottom-color:#f5a623}
.empty{padding:40px;text-align:center;color:#6b7280;font-size:11px}

/* ============================================================
 * Popup chat-style do UmblerTalk
 * Aberto ao clicar no nome do lead. Agrega todas as msgs do
 * mesmo telefone. Paleta dark do terminal:
 *   - cliente (Contact)  -> bubble cinza, alinhada esquerda
 *   - atendente (Member) -> bubble verde sutil, alinhada direita
 *   - sistema/outros     -> centralizado, italico cinza
 * ============================================================ */
.utk-name-link{cursor:pointer;color:#e5e7eb;border-bottom:1px dashed rgba(245,166,35,0.3);transition:color .12s,border-color .12s}
.utk-name-link:hover{color:#f5a623;border-bottom-color:#f5a623}
#utkChatOverlay{position:fixed;inset:0;background:rgba(5,7,13,0.82);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);z-index:9000;display:none;align-items:center;justify-content:center;padding:20px}
#utkChatOverlay.open{display:flex}
#utkChatModal{background:#0a0e1a;border:1px solid #f5a623;border-radius:4px;width:100%;max-width:680px;height:85vh;max-height:760px;display:flex;flex-direction:column;box-shadow:0 12px 40px rgba(0,0,0,.6)}
#utkChatHead{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#11151f;border-bottom:1px solid #1f2937}
#utkChatHead .ttl{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
#utkChatHead .ttl .nm{color:#e5e7eb;font-size:13px;font-weight:600;letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#utkChatHead .ttl .meta{color:#6b7280;font-size:10px;letter-spacing:.04em}
#utkChatHead .actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
#utkChatHead .actions button{background:transparent;border:1px solid #1f2937;color:#94a3b8;padding:4px 9px;font:inherit;font-size:10px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border-radius:2px;transition:border-color .12s,color .12s}
#utkChatHead .actions button:hover{border-color:#f5a623;color:#f5a623}
#utkChatHead .actions button.x{padding:4px 8px;font-size:14px;line-height:1}
#utkChatBody{flex:1;overflow-y:auto;padding:16px 18px;background:#05070d;display:flex;flex-direction:column;gap:8px;scroll-behavior:smooth}
#utkChatBody::-webkit-scrollbar{width:8px}
#utkChatBody::-webkit-scrollbar-track{background:#080b13}
#utkChatBody::-webkit-scrollbar-thumb{background:#1f2937;border-radius:4px}
#utkChatBody::-webkit-scrollbar-thumb:hover{background:#374151}
.utk-day-divider{align-self:center;color:#6b7280;font-size:9px;letter-spacing:.12em;text-transform:uppercase;background:#11151f;padding:3px 10px;border-radius:10px;margin:8px 0 4px;border:1px solid #1f2937}
.utk-chat-divider{align-self:center;color:#f5a623;font-size:9px;letter-spacing:.12em;text-transform:uppercase;padding:3px 12px;margin:6px 0;border-top:1px dashed #1f2937;width:100%;text-align:center;background:transparent}
.utk-bubble{max-width:75%;padding:7px 11px 5px;border-radius:7px;position:relative;word-wrap:break-word;line-height:1.4;font-size:12px}
.utk-bubble .body{color:#e5e7eb;white-space:pre-wrap;word-break:break-word}
.utk-bubble .ts{display:block;font-size:9px;color:#6b7280;margin-top:3px;text-align:right;letter-spacing:.04em}
.utk-bubble .att{display:flex;align-items:center;gap:6px;margin-top:5px;padding:6px 8px;background:rgba(0,0,0,.25);border:1px dashed #374151;border-radius:3px;font-size:11px;color:#94a3b8}
.utk-bubble .att a{color:#4f9cf9;text-decoration:none}
.utk-bubble .att a:hover{color:#f5a623;text-decoration:underline}
.utk-bubble.contact{align-self:flex-start;background:#11151f;border:1px solid #1f2937;border-bottom-left-radius:2px}
.utk-bubble.contact .ts{text-align:left}
.utk-bubble.member{align-self:flex-end;background:#0d382d;border:1px solid #155947;border-bottom-right-radius:2px}
.utk-bubble.member .body{color:#d1fae5}
.utk-bubble.member .ts{color:#86efac}
.utk-bubble.system{align-self:center;background:transparent;border:none;color:#6b7280;font-size:10px;font-style:italic;text-align:center;max-width:90%;padding:4px 8px}
.utk-bubble.system .ts{color:#4b5563;text-align:center;display:inline;margin-left:6px}
#utkChatStatus{padding:10px 16px;background:#11151f;border-top:1px solid #1f2937;color:#94a3b8;font-size:10px;letter-spacing:.04em;display:flex;justify-content:space-between;align-items:center}
#utkChatStatus .err{color:#ef4444}
#utkChatStatus .loading{color:#f5a623}
@media (max-width:600px){
  #utkChatOverlay{padding:0}
  #utkChatModal{max-width:100%;width:100%;height:100vh;max-height:100vh;border-radius:0;border-left:none;border-right:none;border-top:none}
  .utk-bubble{max-width:88%;font-size:13px}
  #utkChatBody{padding:12px 14px}
}
.empty b{color:#f5a623;display:block;margin-bottom:8px;font-size:13px;letter-spacing:.14em}

/* HISTORICO */
.hist-kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:#11151f;padding:2px;margin-bottom:2px}
.hist-kpi{background:#0a0e1a;padding:14px 18px}
.hist-kpi .kk{font-size:9px;color:#6b7280;letter-spacing:.14em;text-transform:uppercase}
.hist-kpi .vv{font-size:24px;color:#e5e7eb;margin-top:4px;font-variant-numeric:tabular-nums;font-weight:500}
.hist-kpi .delta{font-size:10px;margin-top:6px}
.hist-kpi .delta.up{color:#22c55e}.hist-kpi .delta.dn{color:#ef4444}.hist-kpi .delta.zero{color:#6b7280}
.diff-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:10px}
.diff-col{background:#080b13;border:1px solid #1f2937;padding:12px 14px;font-size:11px}
.diff-col h4{color:#f5a623;font-size:10px;letter-spacing:.14em;margin-bottom:8px}
.diff-col .row{padding:4px 0;border-bottom:1px dashed #1f2937;display:flex;justify-content:space-between}
.diff-col .row:last-child{border-bottom:0}
.diff-col .row b.up{color:#22c55e}.diff-col .row b.dn{color:#ef4444}

/* responsive */
@media(max-width:1400px){.timeline{grid-template-columns:repeat(7,1fr)}.alerts-row{grid-template-columns:repeat(3,1fr)}.funnel{grid-template-columns:repeat(4,1fr)}}
@media(max-width:1100px){.wrap{grid-template-columns:repeat(6,1fr)}.timeline{grid-template-columns:repeat(4,1fr)}.hero-b .split{grid-template-columns:repeat(2,1fr)}.hist-kpi-row{grid-template-columns:repeat(2,1fr)}.c-3,.c-4,.c-5,.c-6,.c-7,.c-8,.c-9{grid-column:span 6}}
@media(max-width:760px){
  html,body{font-size:13px;overflow-x:hidden}body{-webkit-text-size-adjust:100%}
  .topbar{flex-direction:column;align-items:stretch;gap:8px;padding:10px 12px;font-size:10px}
  .topbar .brand{justify-content:space-between;width:100%}.topbar .brand .ver{display:none}
  .topbar .meta{flex-wrap:wrap;gap:8px 12px;width:100%;justify-content:space-between;font-size:10px}
  .topbar .meta .pill{order:3;flex-basis:100%;text-align:center}.topbar .btn{padding:8px 10px;font-size:10px;flex:1;min-width:0}
  .topbar .tabrow{flex:1}.ticker{padding:6px 0;font-size:10px}.ticker-track{gap:24px;padding:0 12px;animation-duration:55s}.ticker-item{font-size:10px;gap:6px}
  .wrap{grid-template-columns:1fr;gap:1px;padding:1px}
  .wrap .panel,.wrap .c-3,.wrap .c-4,.wrap .c-5,.wrap .c-6,.wrap .c-7,.wrap .c-8,.wrap .c-9,.wrap .c-12{grid-column:1/-1}
  .panel{padding:14px 14px 12px}.panel h2{font-size:10px;margin-bottom:10px}.panel .corner{font-size:8px;padding:4px 6px}
  .hero-a .num,.hero-b .num{font-size:44px}.hero-churn .num{font-size:38px}
  .hero-a .num .of,.hero-churn .num .of{font-size:15px}
  .hero-b .split{grid-template-columns:repeat(2,1fr);gap:8px;padding-top:10px;margin-top:12px}.hero-b .split .vv{font-size:18px}.hero-b .split .kk{font-size:8px}
  .hero-churn .chip-row{gap:4px;margin-top:10px}.hero-churn .chip{padding:5px 8px;font-size:10px}
  .alerts-row{grid-template-columns:repeat(2,1fr);gap:1px;padding:1px}.alert-cell{padding:10px 10px}.alert-cell .vv{font-size:18px}
  .funnel{grid-template-columns:repeat(2,1fr);gap:2px}.funnel-cell{padding:8px 8px}.funnel-cell .vv{font-size:18px}
  .timeline{grid-template-columns:repeat(3,1fr);gap:1px;padding:1px}.tl-cell{padding:10px 8px}.tl-cell .cnt{font-size:20px}.tl-cell .mo{font-size:9px}.tl-cell .dsc{font-size:8px}
  .tbl{font-size:12px;min-width:100%}.tbl th,.tbl td{padding:6px 6px;font-size:12px}
  .chart-wrap{height:200px}.hist-kpi-row{grid-template-columns:repeat(2,1fr);gap:1px;padding:1px}.hist-kpi{padding:10px 12px}.hist-kpi .vv{font-size:18px}
  .diff-grid{grid-template-columns:1fr;gap:10px}.modal{padding:0;align-items:stretch}.modal-box{max-height:100vh;max-width:100%;border:0;padding:16px 14px}
  .modal-box h3{font-size:12px}.mtbl th,.mtbl td{padding:6px 4px;font-size:12px}.toast{left:12px;right:12px;bottom:12px;padding:10px 14px;font-size:10px}
  button,.btn,[role="button"]{touch-action:manipulation}
}
@media(max-width:380px){.hero-a .num,.hero-b .num{font-size:38px}.hero-churn .num{font-size:32px}.timeline{grid-template-columns:repeat(2,1fr)}}
/* touch: active feedback onde :hover nao aciona */
@media(hover:none){
  .clickable:active,.crit-kpi:active,.hero-a:active,.hero-b:active,.hero-churn:active,.modal-kpi.clickable:active{filter:brightness(0.85);transition:filter 80ms ease}
}

/* REGRA DE NEGOCIO */
.biz-rule{display:flex;gap:14px;align-items:flex-start;background:#0a0e1a;border-bottom:1px solid #1f2937;padding:10px 20px;font-size:11px;color:#94a3b8;line-height:1.55}
.biz-rule .tag{background:#f5a623;color:#05070d;font-weight:700;font-size:9px;letter-spacing:.14em;padding:4px 10px;text-transform:uppercase;white-space:nowrap;border-radius:2px}
.biz-rule b{color:#e5e7eb}
.biz-rule .hl-amber{color:#f5a623}
/* QW4 collapsible banner */
.biz-rule-wrap{background:#0a0e1a;border-bottom:1px solid #1f2937}
.biz-rule-wrap .biz-rule{border-bottom:0}
.biz-rule-summary{display:flex;align-items:center;gap:10px;padding:6px 20px;cursor:pointer;list-style:none;font-size:11px;color:#94a3b8;user-select:none}
.biz-rule-summary::-webkit-details-marker{display:none}
.biz-rule-summary::marker{display:none}
.biz-rule-summary:hover{color:#e5e7eb}
.biz-rule-hint{font-size:10px;letter-spacing:.06em;color:#6b7280}
.biz-rule-summary::before{content:'▸ ';color:#f5a623;font-size:10px}
details[open].biz-rule-wrap > .biz-rule-summary::before{content:'▾ '}

/* STATUS STRIP (secondary top line) */
.status-strip{display:flex;flex-wrap:wrap;gap:22px;align-items:baseline;background:#080b13;border-bottom:1px solid #1f2937;padding:8px 20px;font-size:10px;color:#6b7280;letter-spacing:.1em;text-transform:uppercase}
.status-strip .ss{display:inline-flex;gap:8px;align-items:baseline}
.status-strip .ss .kk{color:#6b7280}
.status-strip .ss .vv{color:#e5e7eb;font-weight:600;font-variant-numeric:tabular-nums}
.status-strip .ss .vv.am{color:#f5a623}
.status-strip .ss .vv.bl{color:#4f9cf9}
.status-strip .ss .vv.gr{color:#22c55e}
.status-strip .ss .vv.rd{color:#ef4444}
.status-strip .ss .vv.pr{color:#a78bfa}
.status-strip .ss .tl{color:#94a3b8;text-transform:none;letter-spacing:0;font-size:10px}

/* 01 GARGALO DINAMICO - cor varia conforme severidade */
.gargalo{background:linear-gradient(180deg,#2a0808 0%,#0a0e1a 100%);border:1px solid #ef4444;transition:border-color .25s,background .25s;cursor:pointer}
.gargalo h2{color:#ef4444}
.gargalo .big{display:flex;align-items:baseline;gap:12px;margin-top:4px}
.gargalo .big .n{font-size:54px;font-weight:500;color:#ef4444;letter-spacing:-0.03em;font-variant-numeric:tabular-nums;line-height:1}
.gargalo .big .of{font-size:18px;color:#fca5a5}
.gargalo .big .pct{font-size:13px;color:#fca5a5;letter-spacing:.06em;margin-left:4px}
.gargalo .lbl{font-size:12px;color:#fca5a5;margin-top:8px;letter-spacing:.04em;text-transform:uppercase}
.gargalo .body{margin-top:14px;padding-top:12px;border-top:1px dashed rgba(239,68,68,.3);font-size:11px;color:#94a3b8;line-height:1.7}
.gargalo .body b{color:#fca5a5}
.gargalo .lists-line{margin-top:8px;color:#6b7280;font-size:10px;letter-spacing:.04em}
.gargalo:hover{filter:brightness(1.08)}
/* variante WARN (amber) quando o gargalo #1 nao e severo */
.gargalo.sev-warn{background:linear-gradient(180deg,#2a1c08 0%,#0a0e1a 100%);border-color:#f5a623}
.gargalo.sev-warn h2{color:#f5a623}
.gargalo.sev-warn .big .n{color:#f5a623}
.gargalo.sev-warn .big .of,.gargalo.sev-warn .big .pct,.gargalo.sev-warn .lbl,.gargalo.sev-warn .body b{color:#fbbf24}
.gargalo.sev-warn .body{border-top-color:rgba(245,166,35,.3)}
/* variante OK (green) quando nao ha gargalos criticos abertos */
.gargalo.sev-ok{background:linear-gradient(180deg,#06180f 0%,#0a0e1a 100%);border-color:#22c55e;cursor:default}
.gargalo.sev-ok h2{color:#22c55e}
.gargalo.sev-ok .big .n{color:#22c55e}
.gargalo.sev-ok .big .of,.gargalo.sev-ok .big .pct,.gargalo.sev-ok .lbl,.gargalo.sev-ok .body b{color:#86efac}
.gargalo.sev-ok .body{border-top-color:rgba(34,197,94,.25)}
.gargalo.sev-ok:hover{filter:none}

/* 06 CARTEIRA */
.carteira{}
.carteira h2 .sub{color:#6b7280}
.carteira .group{margin-top:10px}
.carteira .g-title{font-size:10px;color:#94a3b8;letter-spacing:.12em;text-transform:uppercase;margin-bottom:6px;display:flex;justify-content:space-between;align-items:baseline}
.carteira .g-title b{color:#f5a623;font-variant-numeric:tabular-nums;font-size:12px}
.carteira .bar-row{display:grid;grid-template-columns:140px 1fr 80px;gap:12px;align-items:center;padding:6px 0;font-size:11px}
.carteira .bar-row .k{color:#94a3b8}
.carteira .bar-row .bar{position:relative;height:6px;background:#11151f;border-radius:1px;overflow:hidden}
.carteira .bar-row .bar .fill{position:absolute;top:0;left:0;bottom:0;background:#4f9cf9}
.carteira .bar-row .bar .fill.crit{background:#ef4444}
.carteira .bar-row .bar .fill.warn{background:#f5a623}
.carteira .bar-row .bar .fill.ok{background:#22c55e}
.carteira .bar-row .v{text-align:right;color:#e5e7eb;font-variant-numeric:tabular-nums;font-size:11px}
.carteira .bar-row .v b{color:#94a3b8;font-weight:400;font-size:10px}

/* 07 WATCHLIST BIG */
.watchbig{}
.watchbig .wb-row-h{display:grid;grid-template-columns:40px 1.6fr 90px 1.2fr 70px 1.4fr;gap:10px;padding:8px 12px;background:#080b13;border-bottom:1px solid #1f2937;font-size:9px;color:#6b7280;letter-spacing:.14em;text-transform:uppercase;font-weight:500}
.watchbig .wb-group{padding:6px 12px 0;font-size:10px;color:#6b7280;letter-spacing:.12em;text-transform:uppercase;margin-top:6px;border-top:1px dashed #1f2937}
.watchbig .wb-row{display:grid;grid-template-columns:40px 1.6fr 90px 1.2fr 70px 1.4fr;gap:10px;padding:9px 12px;border-bottom:1px solid #11151f;border-left:3px solid #1f2937;align-items:center;font-size:11px}
.watchbig .wb-row.expired{border-left-color:#ef4444}
.watchbig .wb-row.none{border-left-color:#ef4444}
.watchbig .wb-row.now{border-left-color:#f5a623}
.watchbig .wb-row.next{border-left-color:#4f9cf9}
.watchbig .wb-row.peak{border-left-color:#a78bfa}
.watchbig .wb-row.new{border-left-color:#22c55e}
.watchbig .wb-row .idx{color:#6b7280;font-variant-numeric:tabular-nums;font-size:10px}
.watchbig .wb-row .cli a{color:#e5e7eb;border-bottom:1px dotted #374151}
.watchbig .wb-row .cli a:hover{color:#f5a623;border-bottom-color:#f5a623}
.watchbig .wb-row .mo{display:inline-block;padding:2px 8px;font-size:9px;letter-spacing:.1em;background:#080b13;border:1px solid #1f2937;border-radius:2px;color:#94a3b8;white-space:nowrap}
.watchbig .wb-row.expired .mo{border-color:#ef4444;color:#fca5a5;background:#1a0606}
.watchbig .wb-row.now .mo{border-color:#f5a623;color:#fbbf24;background:#1f1008}
.watchbig .wb-row.next .mo{border-color:#4f9cf9;color:#93c5fd;background:#0a1320}
.watchbig .wb-row.peak .mo{border-color:#a78bfa;color:#c4b5fd;background:#120a1f}
.watchbig .wb-row.new .mo{border-color:#22c55e;color:#86efac;background:#061612}
.watchbig .wb-row .lst{display:inline-block;padding:2px 8px;font-size:9px;letter-spacing:.08em;background:#080b13;border:1px solid #1f2937;border-radius:2px;color:#94a3b8;white-space:nowrap}
.watchbig .wb-row .idle{color:#6b7280;font-size:10px;font-variant-numeric:tabular-nums}
.watchbig .wb-row .idle.warn{color:#f5a623}
.watchbig .wb-row .idle.alert{color:#ef4444;font-weight:500}
.watchbig .wb-row .act{text-align:right;font-size:10px;color:#fbbf24;letter-spacing:.02em}
.watchbig .wb-row.expired .act{color:#fca5a5}
.watchbig .wb-row.now .act{color:#fbbf24}
.watchbig .wb-row.next .act{color:#93c5fd}
.watchbig .wb-row.peak .act{color:#c4b5fd}
.watchbig .wb-row.new .act{color:#86efac}
.watchbig .wb-row .strike{text-decoration:line-through;color:#6b7280}
.watchbig .wb-row.strike{opacity:.55;border-left-color:#6b7280}
.watchbig .wb-row.strike .cli a,.watchbig .wb-row.strike .act,.watchbig .wb-row.strike .mo,.watchbig .wb-row.strike .lst{text-decoration:line-through}
.watchbig .wb-row.strike .cli a{color:#6b7280;border-bottom-color:#374151}
@media(max-width:760px){
  .watchbig .wb-row-h{display:none}
  .watchbig .wb-row{grid-template-columns:40px 1fr;gap:4px;padding:10px 12px}
  .watchbig .wb-row .mo,.watchbig .wb-row .lst,.watchbig .wb-row .idle,.watchbig .wb-row .act{grid-column:2}
  .watchbig .wb-row .act{text-align:left;margin-top:4px}
}

/* 12 LEITURA EXECUTIVA */
.exec-read{background:#0a0e1a;padding:18px 22px;border-left:3px solid #f5a623}
.exec-read p{font-size:11px;line-height:1.75;color:#94a3b8;margin-bottom:9px}
.exec-read p:last-child{margin-bottom:0}
.exec-read b{color:#e5e7eb}
.exec-read .hl-amber{color:#f5a623}
.exec-read .hl-red{color:#ef4444}
.exec-read .hl-green{color:#22c55e}

/* LEGEND FOOTER */
.legend{display:flex;justify-content:space-between;gap:20px;background:#080b13;border-top:1px solid #1f2937;padding:14px 20px;font-size:9px;color:#6b7280;letter-spacing:.1em;text-transform:uppercase;flex-wrap:wrap}
.legend .lg-left{max-width:70%}.legend .lg-right{color:#f5a623;text-align:right;font-weight:500}
.legend b{color:#94a3b8}

/* CRITICOS */
.crit-kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:#11151f;padding:2px;margin-bottom:2px}
.crit-kpi{background:#0a0e1a;padding:16px 20px;cursor:pointer;transition:background .1s;border-top:3px solid #1f2937}
.crit-kpi:hover{background:#0e1320}
.crit-kpi.severe{border-top-color:#ef4444}.crit-kpi.severe .vv{color:#ef4444}
.crit-kpi.warn{border-top-color:#f5a623}.crit-kpi.warn .vv{color:#f5a623}
.crit-kpi.info{border-top-color:#4f9cf9}.crit-kpi.info .vv{color:#4f9cf9}
.crit-kpi.ok{border-top-color:#22c55e;opacity:.65}.crit-kpi.ok .vv{color:#22c55e}
.crit-kpi .kk{font-size:9px;color:#6b7280;letter-spacing:.14em;text-transform:uppercase}
.crit-kpi .vv{font-size:32px;margin-top:6px;font-variant-numeric:tabular-nums;font-weight:500;color:#e5e7eb}
.crit-kpi .dd{font-size:10px;color:#6b7280;margin-top:4px}
.crit-toolbar{display:flex;gap:12px;align-items:center;background:#0a0e1a;padding:10px 16px;border-bottom:1px solid #1f2937}
.crit-toolbar input{flex:1;background:#080b13;border:1px solid #1f2937;color:#e5e7eb;padding:8px 12px;font:inherit;font-size:11px;letter-spacing:.04em}
.crit-toolbar input:focus{outline:none;border-color:#f5a623}
.crit-toolbar .filter-chip{padding:5px 12px;background:#080b13;border:1px solid #1f2937;color:#6b7280;font-size:10px;letter-spacing:.1em;cursor:pointer;text-transform:uppercase;white-space:nowrap;user-select:none}
.crit-toolbar .filter-chip .fc-n{display:inline-block;min-width:16px;margin-left:4px;padding:0 5px;background:#05070d;color:#94a3b8;border:1px solid #1f2937;border-radius:2px;font-size:9px;letter-spacing:.04em;font-variant-numeric:tabular-nums}
.crit-toolbar .filter-chip.active .fc-n{background:#7f1d1d;color:#fff;border-color:#7f1d1d}
.crit-toolbar .filter-chip.zero{opacity:.5}
.crit-toolbar .filter-chip.zero .fc-n{color:#374151}
.crit-toolbar .filter-chip.active{background:#ef4444;border-color:#ef4444;color:#fff}
.crit-toolbar .filter-chip:hover{color:#f5a623;border-color:#f5a623}
.crit-toolbar .filter-chip.active:hover{color:#fff;border-color:#ef4444}
.crit-table{background:#0a0e1a}
.crit-row{display:grid;grid-template-columns:1.6fr 1fr 1fr 0.6fr 0.6fr 0.5fr 110px;gap:10px;padding:11px 16px;border-bottom:1px solid #11151f;align-items:center;font-size:11px;cursor:pointer;transition:background .08s}
/* Aba ACAO DO DIA: row nao e clicavel inteira (so o nome e o botao Trello) */
#acaoList .crit-row{cursor:default}
#acaoList .crit-row:hover{background:#0c1018}
/* Barra "X cards com due futuro estao ocultos" no topo da Acao do Dia */
.acao-due-hidden-bar{margin:8px 16px;padding:8px 12px;background:rgba(79,156,249,.06);border:1px solid rgba(79,156,249,.18);border-radius:4px;font-size:11px;color:#cfd8dc;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.acao-due-hidden-bar b{color:#4f9cf9;font-weight:700}
.acao-due-hidden-bar .toggle{margin-left:auto;background:transparent;border:1px solid #2a3343;color:#4f9cf9;cursor:pointer;font:inherit;font-size:10px;padding:3px 8px;border-radius:3px;text-transform:uppercase;letter-spacing:.05em}
.acao-due-hidden-bar .toggle:hover{background:rgba(79,156,249,.1)}
.acao-due-hidden-list{width:100%;display:none;flex-direction:column;gap:4px;margin-top:8px;padding-top:8px;border-top:1px dashed rgba(79,156,249,.2)}
.acao-due-hidden-list.open{display:flex}
.acao-due-hidden-list .dh-row{display:grid;grid-template-columns:1.6fr 1fr 110px 90px;gap:10px;align-items:center;padding:5px 0;font-size:11px;color:#cfd8dc}
.acao-due-hidden-list .dh-row .dh-name{color:#e5e7eb;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acao-due-hidden-list .dh-row .dh-name a{color:inherit;border-bottom:1px dotted #374151}
.acao-due-hidden-list .dh-row .dh-name a:hover{color:#4f9cf9;border-bottom-color:#4f9cf9}
.acao-due-hidden-list .dh-row .dh-list{color:#94a3b8;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acao-due-hidden-list .dh-row .dh-due{color:#4f9cf9;font-size:10px;font-weight:600}
.acao-due-hidden-list .dh-row .dh-until{color:#6b7280;font-size:10px;text-align:right}
.crit-row:hover{background:#0e1320}
.crit-row .r-name{color:#e5e7eb;font-weight:500;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crit-row .r-name a{color:inherit;border-bottom:1px dotted #374151}
.crit-row .r-name a:hover{color:#f5a623;border-bottom-color:#f5a623}
.crit-row .r-flags{display:flex;flex-wrap:wrap;gap:4px}
.crit-row .r-flags .flag{padding:2px 7px;font-size:9px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;border-radius:2px;white-space:nowrap}
.crit-row .r-flags .flag.severe{background:#2a0a0a;color:#fca5a5;border:1px solid #ef4444}
.crit-row .r-flags .flag.warn{background:#2a1a0a;color:#fbbf24;border:1px solid #f5a623}
.crit-row .r-flags .flag.info{background:#0a1a2a;color:#93c5fd;border:1px solid #4f9cf9}
.crit-row .r-list{color:#94a3b8;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crit-row .r-month{color:#f5a623;font-weight:500;font-size:10px;letter-spacing:.08em}
.crit-row .r-month.sem{color:#f43f5e}
.crit-row .r-idle{color:#6b7280;font-size:10px;text-align:right;font-variant-numeric:tabular-nums}
.crit-row .r-idle.alert{color:#ef4444;font-weight:500}
.crit-row .r-idle.warn{color:#f5a623}
.crit-row .r-wpp{font-family:"JetBrains Mono",monospace;font-size:10px;text-align:right;font-variant-numeric:tabular-nums;color:#6b7280}
.crit-row .r-wpp.ok{color:#22c55e}
.crit-row .r-wpp.warn{color:#f5a623}
.crit-row .r-wpp.alert{color:#ef4444;font-weight:500}
.crit-row .r-wpp.sem{color:#4b5563}
.crit-row .r-wpp[onclick]{cursor:pointer;border-bottom:1px dotted currentColor;display:inline-block}
.crit-row .r-link{text-align:right}
.crit-row .r-link a{padding:5px 10px;background:#080b13;border:1px solid #4f9cf9;color:#4f9cf9;font-size:9px;letter-spacing:.14em;text-transform:uppercase;border-radius:2px;white-space:nowrap}
.crit-row .r-link a:hover{background:#4f9cf9;color:#0a0e1a}
.crit-row .r-labels-ext{font-size:8px;color:#6b7280;margin-top:2px}
.crit-row .r-name .sub-line{font-size:9px;color:#6b7280;margin-top:3px;letter-spacing:.04em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crit-row .r-name .sub-line b{color:#94a3b8;font-weight:400}

/* DRIVE */
.drv-kpi-row{grid-template-columns:repeat(5,1fr)}

/* Painel HISTORICO da aba Drive (sparkline + deltas + mudancas recentes) */
.drv-history-panel{margin:2px 0;background:#080b13;border:1px solid #161b27;border-radius:0}
.drv-history-panel summary{display:flex;align-items:center;gap:12px;padding:8px 16px;cursor:pointer;user-select:none;list-style:none;background:#0a0e1a}
.drv-history-panel summary::-webkit-details-marker{display:none}
.drv-history-panel summary::before{content:"\25B8";color:#6b7280;font-size:10px;transition:transform 120ms}
.drv-history-panel[open] summary::before{transform:rotate(90deg);display:inline-block}
.drv-h-title{color:#cfd8dc;font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:700}
.drv-h-meta{color:#6b7280;font-size:10px;letter-spacing:.04em;margin-left:auto}
.drv-h-btn{background:transparent;border:1px solid #2a3343;color:#cfd8dc;font:inherit;font-size:10px;padding:4px 10px;cursor:pointer;text-transform:uppercase;letter-spacing:.06em;border-radius:3px}
.drv-h-btn:hover{border-color:#f5a623;color:#f5a623}
.drv-h-btn:disabled{opacity:.5;cursor:wait}
.drv-history-body{padding:12px 16px}
.drv-h-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
.drv-h-card{background:#0d1320;border:1px solid #1a2030;padding:10px 12px;border-radius:3px}
.drv-h-card .drv-h-k{font-size:8px;letter-spacing:.08em;text-transform:uppercase;color:#6b7280;font-weight:700;margin-bottom:4px}
.drv-h-card .drv-h-v{font-size:22px;color:#e5e7eb;font-variant-numeric:tabular-nums;font-weight:700;line-height:1.1}
.drv-h-card .drv-h-v.up{color:#ef4444}    /* mais pendentes = ruim */
.drv-h-card .drv-h-v.down{color:#22c55e}  /* menos pendentes = bom */
.drv-h-card .drv-h-v.flat{color:#94a3b8}
.drv-h-card .drv-h-sub{font-size:9px;color:#6b7280;letter-spacing:.04em;margin-top:4px}
.drv-h-card .drv-h-spark{margin-top:4px;height:40px}
.drv-h-card .drv-h-spark svg{display:block;width:100%;height:40px}
.drv-h-changes-wrap{background:#0a0e1a;border:1px solid #1a2030;border-radius:3px}
.drv-h-changes-head{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid #1a2030;font-size:9px;color:#94a3b8;letter-spacing:.08em;text-transform:uppercase;font-weight:700}
.drv-h-changes{max-height:220px;overflow-y:auto}
.drv-h-changes::-webkit-scrollbar{width:6px}
.drv-h-changes::-webkit-scrollbar-thumb{background:#2a3343;border-radius:3px}
.drv-h-change-row{display:grid;grid-template-columns:90px 1.6fr 1.4fr 80px;gap:10px;padding:6px 12px;font-size:10px;color:#cfd8dc;border-bottom:1px solid #11151f;align-items:center}
.drv-h-change-row:hover{background:#11151f}
.drv-h-change-row .ts{color:#6b7280;font-variant-numeric:tabular-nums;font-size:9px}
.drv-h-change-row .nm{color:#e5e7eb;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.drv-h-change-row .what{font-size:10px}
.drv-h-change-row .what.completou{color:#22c55e}
.drv-h-change-row .what.pendente{color:#ef4444}
.drv-h-change-row .what.melhorou{color:#22c55e}
.drv-h-change-row .what.piorou{color:#f5a623}
.drv-h-change-row .what.novo{color:#4f9cf9}
.drv-h-change-row .what.removido{color:#6b7280}
.drv-h-change-row .vals{color:#94a3b8;font-size:9px;text-align:right;font-variant-numeric:tabular-nums}
.drv-h-empty{text-align:center;padding:20px;color:#6b7280;font-size:11px;font-style:italic}
@media (max-width:760px){
  .drv-h-grid{grid-template-columns:repeat(2,1fr)}
  .drv-h-change-row{grid-template-columns:80px 1fr;gap:6px}
  .drv-h-change-row .what,.drv-h-change-row .vals{display:none}
}
.drv-row{display:grid;grid-template-columns:1.4fr 0.4fr 0.7fr 1.0fr 0.7fr 0.7fr 110px;gap:10px;padding:11px 16px;border-bottom:1px solid #11151f;align-items:center;font-size:11px;transition:background .08s}
.drv-row .r-created{color:#94a3b8;font-size:10px;font-variant-numeric:tabular-nums;letter-spacing:.04em}
.drv-row .r-created.missing{color:#6b7280}
.drv-row .r-trello{font-size:9px;letter-spacing:.08em;text-transform:uppercase}
.drv-row .r-trello .mt-ok{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:#061612;border:1px solid #0d382d;color:#4ade80;border-radius:2px}
.drv-row .r-trello .mt-ok a{color:#4ade80;border-bottom:1px dotted #0d382d}
.drv-row .r-trello .mt-ok a:hover{color:#86efac;border-bottom-color:#86efac}
.drv-row .r-trello .mt-archived{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:#1f1008;border:1px solid #78350f;color:#fbbf24;border-radius:2px;opacity:.85}
.drv-row .r-trello .mt-archived a{color:#fbbf24;border-bottom:1px dotted #78350f}
.drv-row .r-trello .mt-archived a:hover{color:#fcd34d;border-bottom-color:#fcd34d}
.drv-row .r-trello .mt-no{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:#1a0606;border:1px solid #ef4444;color:#fca5a5;border-radius:2px;font-weight:500}
.drv-row:hover{background:#0e1320}
.drv-row .r-name{color:#e5e7eb;font-weight:500;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.drv-row .r-name a{color:inherit;border-bottom:1px dotted #374151}
.drv-row .r-name a:hover{color:#f5a623;border-bottom-color:#f5a623}
.drv-row .r-files{color:#94a3b8;text-align:right;font-variant-numeric:tabular-nums}
.drv-row .r-base{font-variant-numeric:tabular-nums;font-size:11px}
.drv-row .r-base.full{color:#22c55e;font-weight:600}
.drv-row .r-base.partial{color:#f5a623}
.drv-row .r-base.none{color:#ef4444;font-weight:500}
.drv-row .r-docs{display:flex;flex-wrap:wrap;gap:3px}
.drv-row .r-docs .dc{padding:1px 6px;font-size:9px;letter-spacing:.06em;border:1px solid #1f2937;background:#080b13;color:#94a3b8;border-radius:2px}
.drv-row .r-docs .dc.base{border-color:#22c55e;color:#86efac}
.drv-row .r-link{text-align:right}
.drv-row .r-link a{padding:5px 10px;background:#080b13;border:1px solid #4f9cf9;color:#4f9cf9;font-size:9px;letter-spacing:.14em;text-transform:uppercase;border-radius:2px;white-space:nowrap}
.drv-row .r-link a:hover{background:#4f9cf9;color:#0a0e1a}
.drv-empty{padding:60px 20px;text-align:center;color:#6b7280}
@media(max-width:760px){
  #view-drive .crit-header{display:none}
  .drv-kpi-row{grid-template-columns:repeat(2,1fr)}
  .drv-row{grid-template-columns:1fr;gap:6px;padding:14px 14px}
  .drv-row .r-name{font-size:13px;font-weight:600}
  .drv-row .r-files,.drv-row .r-base,.drv-row .r-link,.drv-row .r-trello,.drv-row .r-created{text-align:left}
}
.cp-sortable{cursor:pointer;user-select:none;position:relative;padding-right:14px}
.cp-sortable:hover{filter:brightness(1.12)}
.cp-sortable::after{content:'';position:absolute;right:4px;top:50%;transform:translateY(-50%);opacity:.35;font-size:9px}
.cp-sortable.cp-sort-asc::after{content:'\25B2';opacity:1;color:#f5a623}
.cp-sortable.cp-sort-desc::after{content:'\25BC';opacity:1;color:#f5a623}
.cp-sortable.cp-sort-asc, .cp-sortable.cp-sort-desc{color:#f5a623}
.crit-header{display:grid;grid-template-columns:1.6fr 1fr 1fr 0.6fr 0.6fr 110px;gap:10px;padding:10px 16px;background:#080b13;border-bottom:1px solid #1f2937;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:#6b7280;font-weight:500}
.crit-empty{padding:80px 20px;text-align:center;color:#6b7280}
.crit-empty .big{font-size:36px;color:#22c55e;margin-bottom:12px}
.crit-empty .big+div{font-size:14px;color:#f5a623;letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px}
.tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:14px;padding:0 5px;margin-left:6px;background:#ef4444;color:#fff;font-size:9px;border-radius:7px;font-weight:700}
@media(max-width:760px){
  .crit-kpi-row{grid-template-columns:repeat(2,1fr)}.crit-kpi{padding:12px 14px}.crit-kpi .vv{font-size:22px}
  .crit-header{display:none}
  .crit-row{grid-template-columns:1fr;gap:6px;padding:14px 14px}
  .crit-row .r-name{font-size:13px;font-weight:600}
  .crit-row .r-link{text-align:left}.crit-row .r-idle{text-align:left}
}
/* ===== COMPARAR TAB ===== */
.cmp-range-bar{display:flex;gap:10px;padding:14px 20px;background:#0a0e1a;border-bottom:1px solid #1f2937;align-items:center;flex-wrap:wrap}
.cmp-range-label{color:#6b7280;font-size:10px;letter-spacing:.14em;text-transform:uppercase}
.cmp-input{background:#05070d;color:#c9d1d9;border:1px solid #1f2937;padding:6px 10px;font:inherit;font-size:11px;border-radius:2px}
.cmp-input:focus{outline:none;border-color:#f5a623}
.cmp-preset{background:transparent;color:#6b7280;border:1px solid #1f2937;padding:5px 10px;font:inherit;font-size:10px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border-radius:2px}
.cmp-preset:hover{color:#f5a623;border-color:#f5a623}
.cmp-preset.active{color:#f5a623;border-color:#f5a623;background:rgba(245,166,35,0.08)}
.cmp-apply{background:#f5a623;color:#05070d;border:0;padding:6px 14px;font:inherit;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border-radius:2px;font-size:10px}
.cmp-apply:hover{background:#fbbf24}
.cmp-apply:disabled{background:#6b7280;cursor:wait}
.cmp-status{color:#6b7280;font-size:10px;letter-spacing:.04em;margin-left:auto}
.cmp-empty{padding:80px 20px;text-align:center;color:#6b7280}
.cmp-empty .big{font-size:36px;color:#f5a623;margin-bottom:12px}
.cmp-empty .big+div{font-size:14px;color:#f5a623;letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px}
.cmp-empty .sub{font-size:11px;color:#6b7280;letter-spacing:.04em;max-width:520px;margin:0 auto}
.delta-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:#11151f;padding:2px}
.delta-card{background:#0a0e1a;padding:18px 22px}
.delta-card h3{font-size:10px;letter-spacing:.2em;color:#f5a623;font-weight:600;text-transform:uppercase;margin:0 0 6px 0}
.delta-card .k{font-size:10px;color:#6b7280;letter-spacing:.2em;text-transform:uppercase;margin-bottom:10px}
.delta-card .v-row{display:flex;align-items:baseline;gap:10px}
.delta-card .v{font-size:40px;font-weight:500;letter-spacing:-0.02em;line-height:1;font-variant-numeric:tabular-nums;color:#c9d1d9}
.delta-card .d{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}
.delta-card .d.up{color:#22c55e}
.delta-card .d.down{color:#ef4444}
.delta-card .d.same{color:#6b7280}
.delta-card .sub{margin-top:10px;font-size:10px;color:#94a3b8;letter-spacing:.04em}
.delta-card .sub b{color:#c9d1d9;font-weight:500}
.charts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;background:#11151f;padding:2px;margin-top:2px}
.chart-panel{background:#0a0e1a;padding:14px 18px 12px}
.chart-panel h2{font-size:10px;letter-spacing:.2em;color:#f5a623;font-weight:600;text-transform:uppercase;margin:0 0 8px 0;display:flex;justify-content:space-between;align-items:center;gap:10px}
.chart-panel h2 .sub{color:#6b7280;font-weight:400;letter-spacing:.04em;text-transform:none;font-size:10px}
.chart-panel .chart-wrap{height:180px}
.esteira-panel{background:#0a0e1a;padding:18px 20px 14px;margin-top:2px}
.esteira-panel h2{font-size:10px;letter-spacing:.2em;color:#f5a623;font-weight:600;text-transform:uppercase;margin:0 0 12px 0;display:flex;justify-content:space-between;align-items:center}
.esteira-panel h2 .sub{color:#6b7280;font-weight:400;letter-spacing:.04em;text-transform:none;font-size:10px}
.esteira-picker{margin-bottom:10px}
.esteira-bar-row{display:grid;grid-template-columns:200px 1fr 90px;gap:14px;padding:8px 0;align-items:center;border-bottom:1px solid #111827;font-size:11px}
.esteira-bar-row:last-child{border-bottom:0}
.esteira-bar-row .name{color:#c9d1d9;letter-spacing:.04em;text-transform:uppercase;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.esteira-bar-row .bars{display:flex;flex-direction:column;gap:3px}
.esteira-bar-row .bar{height:10px;background:#11151f;position:relative;border-radius:1px;overflow:hidden}
.esteira-bar-row .bar .fill{height:100%;transition:width .3s}
.esteira-bar-row .bar.from .fill{background:#6b7280}
.esteira-bar-row .bar.to .fill{background:#f5a623}
.esteira-bar-row .bar .num{position:absolute;right:4px;top:-1px;font-size:9px;color:#c9d1d9;letter-spacing:.04em;font-variant-numeric:tabular-nums;line-height:12px;text-shadow:0 0 4px #05070d}
.esteira-bar-row .delta{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;font-size:11px}
.esteira-bar-row .delta.up{color:#22c55e}
.esteira-bar-row .delta.down{color:#ef4444}
.esteira-bar-row .delta.same{color:#6b7280}
.esteira-legend{display:flex;gap:16px;margin-bottom:12px;font-size:10px;color:#6b7280;letter-spacing:.04em}
.esteira-legend .sq{display:inline-block;width:10px;height:10px;margin-right:6px;vertical-align:middle;border-radius:1px}
.esteira-legend .sq.from{background:#6b7280}
.esteira-legend .sq.to{background:#f5a623}
.detail-table{width:100%;border-collapse:collapse;font-size:11px}
.detail-table th{text-align:left;color:#6b7280;font-weight:500;padding:6px 10px;border-bottom:1px solid #1f2937;letter-spacing:.1em;text-transform:uppercase;font-size:11px}
.detail-table th.num{text-align:right}
.detail-table td{padding:8px 10px;border-bottom:1px solid #11151f;font-variant-numeric:tabular-nums}
.detail-table td.num{text-align:right}
.detail-table tr:hover{background:rgba(245,166,35,0.04)}
.detail-table .up{color:#22c55e}
.detail-table .down{color:#ef4444}
.detail-table .same{color:#6b7280}
@media(max-width:1100px){.delta-grid{grid-template-columns:repeat(2,1fr)}.charts-grid{grid-template-columns:1fr}}
@media(max-width:760px){.delta-grid{grid-template-columns:1fr}.esteira-bar-row{grid-template-columns:1fr;gap:4px}}
/* FINANCEIRO */
.fin-row{display:grid;grid-template-columns:1.6fr 1fr 0.7fr 0.7fr 0.7fr 0.7fr 110px;gap:10px;padding:10px 16px;border-bottom:1px solid #111827;align-items:center;font-size:11px}
.fin-row:hover{background:#0d1220}
.fin-row .r-name{color:#e5e7eb;font-weight:500}
.fin-row .r-name a{color:inherit;text-decoration:none;border-bottom:1px dotted #374151}
.fin-row .r-name a:hover{color:#4f9cf9;border-bottom-color:#4f9cf9}
.fin-row .r-list{color:#94a3b8;font-size:10px;letter-spacing:.04em;text-transform:uppercase}
.fin-row .r-pago{text-align:right;color:#22c55e;font-variant-numeric:tabular-nums;font-weight:600}
.fin-row .r-pend{text-align:right;color:#f5a623;font-variant-numeric:tabular-nums;font-weight:600}
.fin-row .r-pend.zero{color:#6b7280;font-weight:400}
.fin-row .r-comp{text-align:right;color:#94a3b8;font-variant-numeric:tabular-nums}
.fin-row .r-comp.good{color:#22c55e}.fin-row .r-comp.bad{color:#ef4444}
.fin-row .r-parc{text-align:right;color:#6b7280;font-size:10px;font-variant-numeric:tabular-nums}
.fin-row .r-link{text-align:right}
.fin-row .r-link a{padding:4px 8px;background:#080b13;border:1px solid #4f9cf9;color:#4f9cf9;font-size:9px;letter-spacing:.1em;text-transform:uppercase}
.fin-row .r-link a:hover{background:#4f9cf9;color:#0a0e1a}
.fin-entry{display:grid;grid-template-columns:1.3fr 0.5fr 0.9fr 0.7fr;gap:10px;padding:8px 16px;border-bottom:1px solid #111827;align-items:center;font-size:11px}
.fin-entry:hover{background:#0d1220}
.fin-entry .e-cli{color:#e5e7eb}
.fin-entry .e-cli a{color:inherit;text-decoration:none}
.fin-entry .e-cli a:hover{color:#4f9cf9}
.fin-entry .e-date{color:#94a3b8;font-variant-numeric:tabular-nums;font-size:10px}
.fin-entry .e-val{text-align:right;color:#f5a623;font-variant-numeric:tabular-nums;font-weight:600}
.fin-entry .e-val.severe{color:#ef4444}
.fin-entry .e-list{color:#6b7280;font-size:10px;letter-spacing:.04em;text-transform:uppercase}
.fin-simple-row{display:flex;justify-content:space-between;padding:8px 16px;border-bottom:1px solid #111827;font-size:11px;color:#94a3b8}
.fin-simple-row:hover{background:#0d1220}
.fin-simple-row .s-lbl{color:#e5e7eb}
.fin-simple-row .s-lbl a{color:inherit;text-decoration:none}
.fin-simple-row .s-val{color:#f5a623;font-variant-numeric:tabular-nums;font-weight:600}

/* FIN RANGE BAR */
.fin-top-bar{display:flex;align-items:center;gap:12px;padding:8px 20px;background:#080b13;border-bottom:1px solid #1f2937;flex-wrap:wrap}
.fin-range-bar{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#080b13;border-bottom:1px solid #1f2937;flex-wrap:wrap}
.fin-range-bar label{color:#6b7280;font-size:10px;letter-spacing:.12em;text-transform:uppercase}
.fin-range-bar input[type=date]{background:#0a0e1a;border:1px solid #1f2937;color:#e5e7eb;padding:6px 10px;font:inherit;font-size:11px;color-scheme:dark}
.fin-range-bar input[type=date]:focus{outline:none;border-color:#f5a623}
.fin-preset{cursor:pointer;color:#6b7280;font-size:9px;letter-spacing:.12em;text-transform:uppercase;border:1px solid #1f2937;padding:5px 10px;transition:color .1s,border-color .1s,background .1s}
.fin-preset:hover{color:#f5a623;border-color:#f5a623}
.fin-preset.active{color:#05070d;background:#f5a623;border-color:#f5a623;font-weight:700}

/* FIN STRIP - horizontal pillars with counts */
.fin-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:2px;background:#11151f;padding:2px;margin-top:0}
.fin-strip .cell{background:#0a0e1a;padding:10px 14px;cursor:pointer;border-top:2px solid #1f2937;transition:background .12s}
.fin-strip .cell:hover{background:#0e1320}
.fin-strip .cell .lbl{font-size:9px;color:#6b7280;letter-spacing:.14em;text-transform:uppercase}
.fin-strip .cell .val{font-size:20px;margin-top:4px;font-variant-numeric:tabular-nums;font-weight:500;color:#e5e7eb}
.fin-strip .cell.green{border-top-color:#22c55e}
.fin-strip .cell.green .val{color:#22c55e}
.fin-strip .cell.amber{border-top-color:#f5a623}
.fin-strip .cell.amber .val{color:#f5a623}
.fin-strip .cell.red{border-top-color:#ef4444}
.fin-strip .cell.red .val{color:#ef4444}
.fin-strip .cell.muted{border-top-color:#4f9cf9}
.fin-strip .cell.muted .val{color:#cbd5e1;font-size:16px}

/* FIN RESUMO POR LISTA */
.fin-resumo-row{display:grid;grid-template-columns:1.6fr 0.5fr 0.9fr 0.9fr;gap:10px;padding:8px 16px;border-bottom:1px solid #111827;align-items:center;font-size:11px;cursor:pointer;transition:background .1s}
.fin-resumo-row:hover{background:#0d1220}
.fin-resumo-row .rz-list{color:#e5e7eb}
.fin-resumo-row .rz-count{text-align:right;color:#f5a623;font-variant-numeric:tabular-nums;font-weight:600}
.fin-resumo-row .rz-pago{text-align:right;color:#22c55e;font-variant-numeric:tabular-nums;font-size:10px}
.fin-resumo-row .rz-pend{text-align:right;color:#94a3b8;font-variant-numeric:tabular-nums;font-size:10px}
.fin-resumo-row .rz-pend.zero{color:#4b5563}
.fin-resumo-row .rz-group{display:inline-block;font-size:8px;padding:1px 5px;border-radius:2px;margin-left:6px;letter-spacing:.08em;text-transform:uppercase}
.fin-resumo-row .rz-group.concluidos{background:rgba(34,197,94,.12);color:#22c55e;border:1px solid rgba(34,197,94,.3)}
.fin-resumo-row .rz-group.emPagamento{background:rgba(245,166,35,.12);color:#f5a623;border:1px solid rgba(245,166,35,.3)}
.fin-resumo-row .rz-group.inadimplentes{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.fin-resumo-row .rz-group.outros{background:rgba(107,114,128,.12);color:#94a3b8;border:1px solid rgba(107,114,128,.3)}

/* FIN DRILL MODAL TABLE */
.fin-mtbl{width:100%;border-collapse:collapse;font-size:11px}
.fin-mtbl th{background:#080b13;padding:8px 10px;text-align:left;color:#6b7280;font-size:11px;letter-spacing:.14em;text-transform:uppercase;border-bottom:1px solid #1f2937;position:sticky;top:0}
.fin-mtbl td{padding:7px 10px;border-bottom:1px solid #11151f;vertical-align:middle;font-size:11px}
.fin-mtbl td.nm a{color:#e5e7eb;text-decoration:none;border-bottom:1px dotted #374151}
.fin-mtbl td.nm a:hover{color:#f5a623;border-bottom-color:#f5a623}
.fin-mtbl td.ls{font-size:12px;color:#94a3b8}
.fin-mtbl td.vr{text-align:right;font-variant-numeric:tabular-nums}
.fin-mtbl td.vr.pago{color:#22c55e}
.fin-mtbl td.vr.pend{color:#f5a623}
.fin-mtbl td.vr.late{color:#ef4444}
.fin-mtbl td.dt{color:#94a3b8;font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}
.fin-mtbl td.lk a{color:#4f9cf9;font-size:12px;border-bottom:1px dotted #1e3a5f}
.fin-mtbl td.lk a:hover{color:#f5a623}

@media(max-width:760px){
  #view-fin .crit-header{display:none}
  .fin-strip{grid-template-columns:repeat(3,1fr)}
  .fin-row{grid-template-columns:1fr;gap:4px;padding:12px 14px}
  .fin-row .r-pago,.fin-row .r-pend,.fin-row .r-comp,.fin-row .r-parc,.fin-row .r-link{text-align:left}
}

/* ===== ACAO DO DIA ===== */
.acao-head{display:flex;align-items:baseline;justify-content:space-between;padding:12px 20px;background:#0a0e1a;border-bottom:1px solid #1f2937;gap:16px;flex-wrap:wrap}
.acao-head h1{font-size:15px;letter-spacing:.14em;text-transform:uppercase;color:#f5a623;margin:0;font-weight:500;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.acao-head h1 .sub{color:#6b7280;font-size:10px;letter-spacing:.08em;margin-left:8px}
/* Seletor de atendente: substitui o nome fixo "Bruno". Cada atendente so enxerga a fila dele. */
.acao-user-sel{position:relative;display:inline-flex;align-items:center}
.acao-user-sel .acao-user-btn{cursor:pointer;background:transparent;border:1px solid #1f2937;color:#f5a623;font:inherit;font-size:14px;letter-spacing:.1em;text-transform:uppercase;padding:4px 10px;display:inline-flex;align-items:center;gap:8px;min-width:130px;justify-content:space-between}
.acao-user-sel .acao-user-btn:hover{border-color:#f5a623}
.acao-user-sel .acao-user-btn .caret{color:#6b7280;font-size:9px;transition:transform .12s}
.acao-user-sel.open .acao-user-btn .caret{transform:rotate(180deg);color:#f5a623}
.acao-user-sel .acao-user-menu{position:absolute;top:calc(100% + 4px);left:0;background:#0a0e1a;border:1px solid #1f2937;min-width:100%;z-index:40;display:none;box-shadow:0 6px 20px rgba(0,0,0,.6)}
.acao-user-sel.open .acao-user-menu{display:block}
.acao-user-sel .acao-user-menu .opt{padding:8px 14px;cursor:pointer;color:#c9d1d9;font-size:12px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;border-bottom:1px solid #11151f}
.acao-user-sel .acao-user-menu .opt:last-child{border-bottom:0}
.acao-user-sel .acao-user-menu .opt:hover{background:#11151f;color:#f5a623}
.acao-user-sel .acao-user-menu .opt.active{color:#f5a623;background:#11151f}
.acao-user-sel .acao-user-menu .opt .mm-user{font-size:9px;color:#6b7280;letter-spacing:.04em;text-transform:none;display:block;margin-top:2px}
.acao-head .right{display:flex;gap:8px;align-items:center;font-size:10px;color:#6b7280;letter-spacing:.08em}
.acao-head .sync-btn{cursor:pointer;background:#080b13;border:1px solid #1f2937;color:#94a3b8;padding:6px 12px;font:inherit;font-size:10px;letter-spacing:.1em;text-transform:uppercase}
.acao-head .sync-btn:hover{border-color:#f5a623;color:#f5a623}
.acao-head .sync-btn.spinning{color:#f5a623;border-color:#f5a623}
/* Estado spinning generico (usado tambem pelo botao de sync da Watchlist) */
.sync-btn.spinning{color:#f5a623 !important;border-color:#f5a623 !important}
.sync-btn:hover{color:#f5a623;border-color:#f5a623}

.acao-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:#0a0e1a;border-bottom:1px solid #1f2937}
.acao-strip .cell{padding:14px 18px;border-right:1px solid #1f2937;cursor:pointer;transition:background .15s}
.acao-strip .cell:last-child{border-right:0}
.acao-strip .cell:hover{background:#11151f}
.acao-strip .cell.active{background:#11151f;box-shadow:inset 0 -2px 0 #f5a623}
.acao-strip .cell .kk{font-size:9px;color:#6b7280;letter-spacing:.14em;text-transform:uppercase;display:block;margin-bottom:4px}
.acao-strip .cell .vv{font-size:26px;color:#e5e7eb;font-variant-numeric:tabular-nums;font-weight:500;letter-spacing:-0.02em}
.acao-strip .cell.sev-crit .vv{color:#ef4444}
.acao-strip .cell.sev-urgent .vv{color:#f5a623}
.acao-strip .cell.sev-prepare .vv{color:#4f9cf9}
.acao-strip .cell.sev-done .vv{color:#22c55e}

/* ===== Calendário de prazos ===== */
.cal-panel{background:#0a0e1a;border-bottom:1px solid #1f2937;padding:14px 20px}
.cal-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.cal-title{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#f5a623;flex:1}
.cal-title .sub{color:#6b7280;font-size:10px;letter-spacing:.06em;margin-left:8px;text-transform:none}
.cal-nav{cursor:pointer;background:#080b13;border:1px solid #1f2937;color:#94a3b8;padding:6px 12px;font:inherit;font-size:11px;letter-spacing:.08em}
.cal-nav:hover{border-color:#f5a623;color:#f5a623}
.cal-nav.cal-today{margin-left:auto;font-size:10px;letter-spacing:.1em}
.cal-overdue{background:#1a0d0d;border:1px solid #ef4444;border-radius:2px;padding:8px 12px;margin-bottom:10px;display:flex;align-items:center;gap:12px;font-size:11px;color:#ef4444;letter-spacing:.06em;cursor:pointer}
.cal-overdue:hover{background:#2a1515}
.cal-overdue.empty{border-color:#1f2937;color:#6b7280;cursor:default;background:transparent}
.cal-overdue.empty:hover{background:transparent}
.cal-overdue .big{font-size:18px;font-weight:600}
.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;font-size:9px;color:#6b7280;letter-spacing:.1em;padding:0 0 4px 0;text-align:center}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal-cell{background:#080b13;border:1px solid #11151f;min-height:76px;padding:6px 8px;cursor:pointer;position:relative;transition:border-color .12s}
.cal-cell .monthdist{display:flex;flex-wrap:wrap;gap:3px;margin-top:4px;padding-bottom:6px}
.cal-cell .monthdist .mdist{padding:1px 4px;background:rgba(245,166,35,.08);color:#f5a623;border:1px solid rgba(245,166,35,.22);border-radius:2px;white-space:nowrap;font-size:8px;letter-spacing:.04em;font-weight:500;line-height:1.3}
.cal-cell .monthdist .mdist b{color:#fcd34d;margin-left:2px;font-weight:600}
.cal-cell .monthdist .mdist.sem{background:rgba(107,114,128,.08);color:#94a3b8;border-color:rgba(107,114,128,.22)}
.cal-cell .monthdist .mdist.sem b{color:#c9d1d9}
.cal-cell .monthdist .mdist.more{background:rgba(79,156,249,.08);color:#4f9cf9;border-color:rgba(79,156,249,.22);position:relative;cursor:help}
/* Popover: aparece on hover do +N mostrando os meses escondidos. */
.cal-cell .monthdist .mdist.more .mdist-pop{position:absolute;bottom:calc(100% + 4px);left:50%;transform:translateX(-50%);background:#0a0e1a;border:1px solid #4f9cf9;border-radius:3px;padding:5px 6px;display:none;gap:3px;flex-wrap:wrap;z-index:20;box-shadow:0 4px 12px rgba(0,0,0,.6);min-width:max-content}
.cal-cell .monthdist .mdist.more:hover .mdist-pop{display:flex}
.cal-cell .monthdist .mdist.more .mdist-pop .mdist{background:rgba(245,166,35,.08);color:#f5a623;border-color:rgba(245,166,35,.22);padding:2px 5px;font-size:9px}
.cal-cell .monthdist .mdist.more .mdist-pop .mdist b{color:#fcd34d}
.cal-cell .monthdist .mdist.more .mdist-pop .mdist.sem{background:rgba(107,114,128,.08);color:#94a3b8;border-color:rgba(107,114,128,.22)}
.cal-cell.muted{background:#05070d;border-color:#0c1017;cursor:default;opacity:.45}
.cal-cell.muted:hover{border-color:#0c1017}
.cal-cell:hover{border-color:#f5a623}
.cal-cell .daynum{font-size:11px;color:#6b7280;font-weight:500}
.cal-cell .count{font-size:18px;font-weight:600;color:#c9d1d9;margin-top:4px;line-height:1}
.cal-cell.lv0 .count{color:#2c3545}
.cal-cell.lv1{background:#0d1a14}
.cal-cell.lv1 .count{color:#22c55e}
.cal-cell.lv2{background:#1a1608}
.cal-cell.lv2 .count{color:#f5a623}
.cal-cell.lv3{background:#1a0d0d}
.cal-cell.lv3 .count{color:#ef4444}
.cal-cell.today{border-color:#f5a623;box-shadow:inset 0 0 0 1px #f5a623}
.cal-cell.selected{border-color:#4f9cf9;box-shadow:inset 0 0 0 1px #4f9cf9}
.cal-cell .bar{position:absolute;left:6px;right:6px;bottom:4px;height:3px;background:#1f2937;border-radius:1px;overflow:hidden}
.cal-cell .bar .fill{height:100%;background:#f5a623}
.cal-legend{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:10px;color:#6b7280;letter-spacing:.06em;flex-wrap:wrap}
.cal-legend .swatch{display:inline-block;width:12px;height:12px;border:1px solid #11151f;vertical-align:middle;margin:0 4px 0 12px}
.cal-legend .swatch.lv0{background:#080b13}
.cal-legend .swatch.lv1{background:#0d1a14}
.cal-legend .swatch.lv2{background:#1a1608}
.cal-legend .swatch.lv3{background:#1a0d0d}
.cal-legend .swatch.lv-over{background:#1a0d0d;border-color:#ef4444}
.cal-legend .swatch.lv-today{background:#080b13;border-color:#f5a623}
.cal-drill{background:#080b13;border:1px solid #1f2937;margin-top:10px;padding:12px 14px}
.cal-drill h3{font-size:12px;letter-spacing:.1em;color:#f5a623;margin:0 0 10px 0;text-transform:uppercase;display:flex;justify-content:space-between;align-items:center}
.cal-drill h3 .close{cursor:pointer;color:#6b7280;font-size:14px}
.cal-drill h3 .close:hover{color:#ef4444}
.cal-drill ul{list-style:none;margin:0;padding:0}
.cal-drill li{padding:6px 0;border-bottom:1px dashed #1f2937;font-size:12px;display:flex;justify-content:space-between;gap:10px}
.cal-drill li:last-child{border-bottom:0}
.cal-drill li .name{color:#c9d1d9;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-drill li .name a{color:inherit;text-decoration:none}
.cal-drill li .name a:hover{color:#f5a623}
.cal-drill li .month{color:#f5a623;font-size:10px;letter-spacing:.06em;text-transform:uppercase;min-width:32px;text-align:right}
.cal-drill li .month.sem{color:#6b7280}
.cal-drill li .list{color:#6b7280;font-size:10px;letter-spacing:.06em;text-transform:uppercase;min-width:160px;text-align:right}
.cal-drill li .tlist{font-family:"JetBrains Mono",monospace;color:#94a3b8;font-size:10px;min-width:48px;text-align:right;font-variant-numeric:tabular-nums}
.cal-drill li .tlist.warn{color:#f5a623}
.cal-drill li .tlist.alert{color:#ef4444}
.cal-drill li .tlist.sem{color:#4b5563}

.acao-list{padding:0}
.acao-list .crit-row{border-left:3px solid #1f2937}
.acao-list .crit-row.sev-crit{border-left-color:#ef4444}
.acao-list .crit-row.sev-urgent{border-left-color:#f5a623}
.acao-list .crit-row.sev-prepare{border-left-color:#4f9cf9}
.acao-list .crit-row .r-name .sub-line{font-size:9px;color:#6b7280;margin-top:3px;letter-spacing:.04em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acao-list .crit-row .r-name .sub-line b{color:#94a3b8;font-weight:400}
.acao-group{padding:10px 20px 4px;font-size:10px;color:#6b7280;letter-spacing:.14em;text-transform:uppercase;border-top:1px dashed #1f2937;margin-top:4px;display:flex;align-items:baseline;justify-content:space-between}
.acao-group:first-of-type{border-top:0}
.acao-group .cnt{color:#94a3b8;font-variant-numeric:tabular-nums}
.acao-row{display:grid;grid-template-columns:38px 1.8fr 200px 90px 80px 110px;gap:12px;align-items:center;padding:11px 20px;border-left:3px solid #1f2937;border-bottom:1px solid #11151f;font-size:11px;cursor:pointer;transition:background .12s}
.acao-row:hover{background:#080b13}
.acao-row.sev-crit{border-left-color:#ef4444}
.acao-row.sev-urgent{border-left-color:#f5a623}
.acao-row.sev-prepare{border-left-color:#4f9cf9}
.acao-row .idx{color:#6b7280;font-variant-numeric:tabular-nums;font-size:10px}
.acao-row .cli{display:flex;flex-direction:column;gap:2px;min-width:0}
.acao-row .cli a{color:#e5e7eb;border-bottom:1px dotted #374151;text-decoration:none;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acao-row .cli a:hover{color:#f5a623;border-bottom-color:#f5a623}
.acao-row .cli .sec{color:#6b7280;font-size:9px;letter-spacing:.05em}
.acao-row .cli .sec b{color:#94a3b8;font-weight:400}
.acao-row .act{display:inline-block;padding:4px 10px;font-size:10px;letter-spacing:.05em;text-transform:uppercase;background:#11151f;border:1px solid #1f2937;color:#94a3b8;white-space:nowrap;text-align:center}
.acao-row.sev-crit .act{background:#1a0606;border-color:#ef4444;color:#fca5a5}
.acao-row.sev-urgent .act{background:#1f1008;border-color:#f5a623;color:#fbbf24}
.acao-row.sev-prepare .act{background:#0a1320;border-color:#4f9cf9;color:#93c5fd}
.acao-row .lst{padding:2px 8px;font-size:9px;letter-spacing:.08em;background:#080b13;border:1px solid #1f2937;border-radius:2px;color:#94a3b8;white-space:nowrap;text-align:center;overflow:hidden;text-overflow:ellipsis}
.acao-row .mes{display:inline-block;padding:2px 8px;font-size:9px;letter-spacing:.1em;background:#080b13;border:1px solid #1f2937;border-radius:2px;color:#94a3b8;text-align:center}
.acao-row .mes.sem{color:#6b7280}
.acao-row .idle{text-align:right;color:#6b7280;font-variant-numeric:tabular-nums;font-size:10px}
.acao-row .idle.warn{color:#f5a623}
.acao-row .idle.alert{color:#ef4444;font-weight:500}
.acao-row .lk{text-align:right}
.acao-row .lk a{color:#6b7280;font-size:10px;letter-spacing:.06em}
.acao-row .lk a:hover{color:#f5a623}

.acao-empty{padding:60px 20px;text-align:center;color:#22c55e;font-size:13px;letter-spacing:.04em}
.acao-empty .big{font-size:32px;margin-bottom:8px}
.acao-empty .sub{color:#6b7280;font-size:11px;margin-top:6px;letter-spacing:.04em}

.acao-footer{padding:18px 20px;color:#6b7280;font-size:10px;letter-spacing:.04em;border-top:1px dashed #1f2937;text-align:center}

@media(max-width:760px){
  .acao-row{grid-template-columns:32px 1fr 120px;gap:8px;padding:10px 14px}
  .acao-row .lst,.acao-row .mes,.acao-row .idle,.acao-row .lk{display:none}
  .acao-strip{grid-template-columns:repeat(2,1fr)}
  .crit-kpi-row{grid-template-columns:repeat(3,1fr)}
}

/* ===== LOGIN + USER CHIP ===== */
/* Overlay full-screen: oculta TODO o terminal ate o /api/auth/me voltar OK.
   Mostrado por JS se o usuario nao esta autenticado. */
.auth-overlay{position:fixed;inset:0;background:#05070d;z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px;color:#c9d1d9}
.auth-overlay[hidden]{display:none}
.auth-card{background:#0a0e1a;border:1px solid #1f2937;max-width:380px;width:100%;padding:28px 28px 22px}
.auth-card .brand{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:22px}
.auth-card .brand .logo{width:260px;max-width:100%;height:auto;display:block}
.auth-card .brand .tag{font-size:9px;color:#6b7280;letter-spacing:.22em;text-transform:uppercase}
.auth-card h2{display:none}
.auth-card .sub{display:none}
.auth-card label{display:block;font-size:10px;color:#6b7280;letter-spacing:.12em;text-transform:uppercase;margin:12px 0 6px}
.auth-card input{width:100%;background:#05070d;border:1px solid #1f2937;color:#c9d1d9;padding:10px 12px;font:inherit;font-size:13px;letter-spacing:.04em;box-sizing:border-box}
.auth-card input:focus{outline:none;border-color:#f5a623}
.auth-card button{width:100%;background:#f5a623;color:#05070d;border:0;padding:12px;font:inherit;font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:11px;margin-top:18px;cursor:pointer}
.auth-card button:hover{background:#fbbf24}
.auth-card button:disabled{background:#6b7280;cursor:wait}
.auth-err{color:#ef4444;font-size:11px;letter-spacing:.04em;margin-top:10px;min-height:16px}
.auth-hint{font-size:10px;color:#6b7280;letter-spacing:.06em;margin-top:14px;border-top:1px solid #1f2937;padding-top:10px}

/* Chip do usuario logado no topbar */
.topbar .user-chip{display:inline-flex;align-items:center;gap:8px;padding:4px 10px;background:#11151f;border:1px solid #1f2937;color:#c9d1d9;font-size:10px;letter-spacing:.08em;cursor:pointer;position:relative}
.topbar .user-chip:hover{border-color:#f5a623;color:#f5a623}
.topbar .user-chip .ini{width:18px;height:18px;background:#f5a623;color:#05070d;display:grid;place-items:center;font-weight:700;font-size:10px;border-radius:2px}
.topbar .user-chip.admin .ini{background:#22c55e}
.topbar .user-chip .caret{color:#6b7280;font-size:8px}
.topbar .user-menu{position:absolute;top:calc(100% + 4px);right:0;background:#0a0e1a;border:1px solid #1f2937;min-width:200px;display:none;z-index:50;box-shadow:0 6px 20px rgba(0,0,0,.6)}
.topbar .user-chip.open .user-menu{display:block}
.topbar .user-menu .item{padding:10px 14px;cursor:pointer;color:#c9d1d9;font-size:11px;letter-spacing:.06em;border-bottom:1px solid #11151f;text-transform:none}
.topbar .user-menu .item:last-child{border-bottom:0}
.topbar .user-menu .item:hover{background:#11151f;color:#f5a623}
.topbar .user-menu .info{padding:10px 14px;font-size:9px;color:#6b7280;letter-spacing:.04em;border-bottom:1px solid #1f2937;text-transform:none;cursor:default}
.topbar .user-menu .info b{color:#c9d1d9;font-size:11px;display:block;margin-bottom:2px}

/* Modal de troca de senha (reutiliza o .modal existente mas com estilos proprios) */
.pwd-modal{position:fixed;inset:0;background:rgba(5,7,13,.88);z-index:1800;display:flex;align-items:center;justify-content:center;padding:20px}
.pwd-modal[hidden]{display:none}
.pwd-modal .card{background:#0a0e1a;border:1px solid #1f2937;max-width:420px;width:100%;padding:24px}
.pwd-modal h3{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#f5a623;margin:0 0 4px;font-weight:500}
.pwd-modal .sub{font-size:10px;color:#6b7280;letter-spacing:.06em;margin-bottom:18px}
.pwd-modal label{display:block;font-size:10px;color:#6b7280;letter-spacing:.12em;text-transform:uppercase;margin:10px 0 6px}
.pwd-modal input{width:100%;background:#05070d;border:1px solid #1f2937;color:#c9d1d9;padding:10px 12px;font:inherit;font-size:13px;box-sizing:border-box}
.pwd-modal input:focus{outline:none;border-color:#f5a623}
.pwd-modal .row{display:flex;gap:10px;margin-top:18px}
.pwd-modal button{flex:1;background:#f5a623;color:#05070d;border:0;padding:11px;font:inherit;font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:11px;cursor:pointer}
.pwd-modal button.ghost{background:transparent;color:#6b7280;border:1px solid #1f2937}
.pwd-modal button.ghost:hover{color:#f5a623;border-color:#f5a623}
.pwd-modal button:hover:not(.ghost){background:#fbbf24}
.pwd-modal button:disabled{background:#6b7280;cursor:wait}
.pwd-err{color:#ef4444;font-size:11px;margin-top:10px;min-height:16px}

/* Quando mustChangePassword, bloqueia tudo */
body.auth-locked{overflow:hidden}

/* ===== ADMIN · Gerenciar usuarios — redesign UX/UI ===== */
.admin-modal{position:fixed;inset:0;background:rgba(5,7,13,.92);z-index:1700;display:flex;align-items:flex-start;justify-content:center;padding:30px 20px;overflow-y:auto}
.admin-modal[hidden]{display:none}
.admin-modal .card{background:#0a0e1a;border:1px solid #1f2937;max-width:860px;width:100%;padding:24px 26px}

/* Header redesenhado */
.admin-hdr{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid #1f2937}
.admin-hdr-left{flex:1;min-width:0}
.admin-hdr-title{font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:#f5a623;margin:0 0 4px;font-weight:500}
.admin-hdr-sub{font-size:10px;color:#6b7280;letter-spacing:.05em;font-variant-numeric:tabular-nums}
.admin-hdr-right{display:flex;align-items:center;gap:10px;flex-shrink:0}
.admin-search{background:#080b13;border:1px solid #1f2937;color:#c9d1d9;padding:7px 12px;font:inherit;font-size:11px;width:220px;outline:none;letter-spacing:.04em}
.admin-search::placeholder{color:#4b5563}
.admin-search:focus{border-color:#f5a623}
.admin-close-btn{cursor:pointer;background:transparent;border:1px solid #1f2937;color:#94a3b8;padding:0;width:32px;height:32px;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.admin-close-btn:hover{border-color:#f5a623;color:#f5a623}

/* Cards de usuario */
.admin-user-list{display:flex;flex-direction:column;gap:10px}
.user-card{display:flex;align-items:flex-start;gap:14px;background:#0d1320;border:1px solid #1a2030;border-left:3px solid #2a3343;padding:14px 16px;transition:background 120ms}
.user-card:hover{background:#11151e}
.user-card.is-admin-user{border-left-color:#22c55e}
.user-card.is-me-user{border-left-color:#a78bfa}
.user-card.must-change{border-left-color:#ef4444}

/* Avatar circular */
.user-card-avatar{flex-shrink:0;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;color:#fff;letter-spacing:.02em;text-transform:uppercase;user-select:none}

/* Conteudo principal do card */
.user-card-main{flex:1;min-width:0}
.user-card-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;margin-bottom:5px}
.user-name{font-size:12px;font-weight:600;color:#e2e8f0;letter-spacing:.03em}
.user-mono{font-size:10px;color:#6b7280;letter-spacing:.04em}
.user-badge{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:2px 7px;border-radius:3px}
.user-badge.bg-violet{background:rgba(167,139,250,.18);color:#a78bfa;border:1px solid rgba(167,139,250,.35)}
.user-badge.bg-green{background:rgba(34,197,94,.14);color:#22c55e;border:1px solid rgba(34,197,94,.3)}
.user-badge.bg-orange{background:rgba(245,166,35,.14);color:#f5a623;border:1px solid rgba(245,166,35,.3)}
.user-badge.bg-red{background:rgba(239,68,68,.14);color:#ef4444;border:1px solid rgba(239,68,68,.3)}

/* Meta: trello id + last activity */
.user-card-meta{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:10px}
.meta-item{font-size:10px;color:#6b7280;letter-spacing:.03em;font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:4px}
.meta-item.last-act-recent{color:#22c55e}

/* Grupos de permissoes */
.user-card-perms{display:flex;align-items:flex-start;flex-wrap:wrap;gap:10px 16px}
.perm-group{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.perm-group-label{font-size:9px;color:#4b5563;letter-spacing:.1em;text-transform:uppercase;margin-right:2px;white-space:nowrap}

/* Perm chips (botoes toggles) */
.perm-chip{background:transparent;border:1px solid #2a3343;color:#8b97a8;padding:5px 11px;border-radius:16px;font:inherit;font-size:11px;font-weight:600;cursor:pointer;transition:border-color 80ms,background 80ms,color 80ms;letter-spacing:.03em;white-space:nowrap}
.perm-chip[aria-pressed="true"]{background:rgba(245,166,35,.14);border-color:#f5a623;color:#f5a623}
.perm-chip:hover:not(:disabled){border-color:#f5a623}
.perm-chip:focus-visible{outline:2px solid #f5a623;outline-offset:2px}
.perm-chip:disabled{opacity:.45;cursor:not-allowed}
.perm-chip.perm-admin[aria-pressed="true"]{background:rgba(34,197,94,.14);border-color:#22c55e;color:#22c55e}
.perm-chip.perm-admin:hover:not(:disabled):not([aria-pressed="true"]){border-color:#22c55e;color:#22c55e}

/* Acoes do card (direita) */
.user-card-actions{display:flex;flex-direction:column;gap:7px;flex-shrink:0;align-self:center}
.action-btn{cursor:pointer;background:#080b13;border:1px solid #1f2937;color:#94a3b8;padding:6px 12px;font:inherit;font-size:10px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;display:flex;align-items:center;gap:5px;transition:border-color 80ms,color 80ms}
.action-btn:hover{border-color:#f5a623;color:#f5a623}
.action-btn.warn-btn:hover{border-color:#ef4444;color:#ef4444}
#adminModal .action-btn.danger-btn{color:#ef4444;border-color:rgba(239,68,68,0.3)}
#adminModal .action-btn.danger-btn:hover,#adminModal .action-btn.danger-btn:focus-visible{background:rgba(239,68,68,0.1);border-color:#ef4444;color:#fff}
.action-btn:disabled{opacity:.35;cursor:not-allowed}

/* Empty state pesquisa */
.admin-empty{text-align:center;padding:28px 0;font-size:11px;color:#4b5563;letter-spacing:.06em}

/* Toast de admin */
.admin-toast{margin-top:14px;padding:8px 12px;font-size:11px;border:1px solid;min-height:14px}
.admin-toast.ok{border-color:#22c55e;color:#22c55e;background:rgba(34,197,94,.08)}
.admin-toast.err{border-color:#ef4444;color:#ef4444;background:rgba(239,68,68,.08)}
.admin-toast:empty{display:none}
/* ===== ADMIN · Criar usuario modal (z-index 1900) ===== */
#adminCreateModal{position:fixed;inset:0;background:rgba(5,7,13,.94);z-index:1900;display:flex;align-items:flex-start;justify-content:center;padding:40px 20px;overflow-y:auto}
#adminCreateModal[hidden]{display:none}
#adminCreateModal .card{background:#0a0e1a;border:1px solid #1f2937;max-width:520px;width:100%;padding:24px 26px}
#adminCreateModal .acm-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid #1f2937}
#adminCreateModal .acm-title{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#f5a623;margin:0;font-weight:500}
#adminCreateModal .acm-close{cursor:pointer;background:transparent;border:1px solid #1f2937;color:#94a3b8;width:32px;height:32px;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;flex-shrink:0}
#adminCreateModal .acm-close:hover{border-color:#f5a623;color:#f5a623}
#adminCreateModal .acm-field{margin-bottom:14px}
#adminCreateModal .acm-label{display:block;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#6b7280;margin-bottom:5px}
#adminCreateModal .acm-input{background:#080b13;border:1px solid #1f2937;color:#c9d1d9;padding:8px 12px;font:inherit;font-size:11px;width:100%;outline:none;letter-spacing:.04em;box-sizing:border-box}
#adminCreateModal .acm-input::placeholder{color:#4b5563}
#adminCreateModal .acm-input:focus{border-color:#f5a623}
#adminCreateModal .acm-input.invalid{border-color:#ef4444}
#adminCreateModal .acm-hint{font-size:10px;color:#4b5563;margin-top:4px;letter-spacing:.03em}
#adminCreateModal .acm-hint.err{color:#ef4444}
#adminCreateModal .acm-toggle-row{display:flex;align-items:center;gap:10px;margin-bottom:14px}
#adminCreateModal .acm-toggle-label{font-size:11px;color:#c9d1d9;cursor:pointer;letter-spacing:.03em;user-select:none}
#adminCreateModal .acm-toggle{width:16px;height:16px;accent-color:#f5a623;cursor:pointer;flex-shrink:0}
#adminCreateModal .acm-perms-label{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#6b7280;margin-bottom:8px}
#adminCreateModal .acm-chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:18px}
#adminCreateModal .acm-chip{background:transparent;border:1px solid #2a3343;color:#8b97a8;padding:5px 11px;border-radius:16px;font:inherit;font-size:11px;font-weight:600;cursor:pointer;letter-spacing:.03em;white-space:nowrap;transition:border-color 80ms,background 80ms,color 80ms}
#adminCreateModal .acm-chip[aria-pressed="true"]{background:rgba(245,166,35,.14);border-color:#f5a623;color:#f5a623}
#adminCreateModal .acm-chip:hover{border-color:#f5a623}
#adminCreateModal .acm-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-top:16px;border-top:1px solid #1f2937}
#adminCreateModal .acm-btn-cancel{background:transparent;border:1px solid #2a3343;color:#8b97a8;padding:7px 16px;font:inherit;font-size:11px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
#adminCreateModal .acm-btn-cancel:hover{border-color:#f5a623;color:#f5a623}
#adminCreateModal .acm-btn-submit{background:#f5a623;color:#0a0e1a;border:1px solid #f5a623;padding:7px 18px;font:inherit;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
#adminCreateModal .acm-btn-submit:hover{background:#fbbf24;border-color:#fbbf24}
#adminCreateModal .acm-btn-submit:disabled{background:#6b7280;border-color:#6b7280;cursor:wait}
#adminCreateModal .acm-pwd-banner{margin-top:14px;padding:12px 14px;border:1px solid #22c55e;background:rgba(34,197,94,.08);font-size:11px;color:#22c55e;letter-spacing:.03em;display:none}
#adminCreateModal .acm-pwd-banner b{font-size:13px;letter-spacing:.06em;word-break:break-all}
#adminCreateModal .acm-pwd-copy{background:transparent;border:1px solid #22c55e;color:#22c55e;padding:4px 10px;font:inherit;font-size:10px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;margin-top:8px;display:block}
#adminCreateModal .acm-pwd-copy:hover{background:rgba(34,197,94,.15)}
/* activity modal — stacks above admin modal */
.act-modal{position:fixed;inset:0;background:rgba(5,7,13,.88);z-index:1800;display:flex;align-items:flex-start;justify-content:center;padding:40px 20px;overflow-y:auto}
.act-modal[hidden]{display:none}
.act-modal .card{background:#0a0e1a;border:1px solid #1f2937;max-width:780px;width:100%;padding:20px 22px}
.act-modal .head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid #1f2937}
.act-modal .head h3{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#f5a623;margin:0;font-weight:500}
.act-modal .head button{cursor:pointer;background:transparent;border:1px solid #1f2937;color:#94a3b8;padding:5px 12px;font:inherit;font-size:10px;letter-spacing:.1em;text-transform:uppercase}
.act-modal .head button:hover{border-color:#f5a623;color:#f5a623}
.act-list{list-style:none;margin:0;padding:0;font-size:11px}
.act-list li{display:grid;grid-template-columns:90px 1fr auto;gap:6px 10px;padding:7px 0;border-bottom:1px solid #0d111c;align-items:baseline}
.act-list li:last-child{border-bottom:none}
.act-list .act-ts{color:#6b7280;font-size:10px;white-space:nowrap;font-variant-numeric:tabular-nums}
.act-list .act-label{color:#c9d1d9}
.act-list .act-card{color:#6b7280;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
.act-list .act-status{font-size:9px;letter-spacing:.06em;padding:2px 6px;border-radius:2px;white-space:nowrap}
.act-list .act-status.s2xx{background:rgba(34,197,94,.12);color:#22c55e;border:1px solid rgba(34,197,94,.3)}
.act-list .act-status.s4xx{background:rgba(245,166,35,.12);color:#f5a623;border:1px solid rgba(245,166,35,.3)}
.act-list .act-status.s5xx{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.act-list .act-status.snone{background:transparent;color:#6b7280;border:1px solid #1f2937}
.act-empty{color:#6b7280;font-size:11px;padding:14px 0;text-align:center;letter-spacing:.06em}
.act-loading{color:#6b7280;font-size:11px;padding:14px 0;text-align:center;animation:pulse 1.2s infinite}
@keyframes pulse{0%,100%{opacity:.4}50%{opacity:1}}

/* ============================================================================
 * MOBILE - ajustes complementares aos blocos @media existentes.
 * Cobre o que ficou pendente: tabs scrollaveis, ticker scroll, coluna WPP
 * escondida em listas reduzidas, drill modal mais magro, sync-pill compacto,
 * UmblerTalk responsivo. Ativos a partir de 760px (tablet/celular).
 * Tudo encapsulado num bloco unico pra ficar facil revisar/desativar.
 * ============================================================================ */
@media(max-width:760px){
  /* TOPBAR - tabs em scroll horizontal com snap (em vez de quebrar/empilhar) */
  .topbar .tabrow{
    overflow-x:auto;flex-wrap:nowrap;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    margin:0 -12px;padding:0 12px;
  }
  .topbar .tabrow::-webkit-scrollbar{display:none}
  .topbar .tabrow .btn{flex:0 0 auto;scroll-snap-align:start;white-space:nowrap}
  /* Sync pill (UMBLER ...) compacto */
  .sync-pill{font-size:8px;padding:3px 6px;letter-spacing:.06em}
  .sync-pill::before{width:5px;height:5px}

  /* TICKER - scroll horizontal contido em vez de wrap */
  .ticker{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .ticker::-webkit-scrollbar{display:none}
  .ticker-track{animation:none}

  /* CRITICOS / ACAO - row empilha, esconde colunas auxiliares incluindo WPP nova */
  .crit-row{grid-template-columns:1fr;gap:6px;padding:14px 14px}
  .crit-row .r-list,.crit-row .r-month,.crit-row .r-idle,.crit-row .r-link,.crit-row .r-wpp{text-align:left}
  .crit-row .r-flags{flex-wrap:wrap}

  /* DRILL MODAL - tabela mtbl mostra so o essencial: Cliente, Lista, Na lista, Trello.
     Esconde Mes (col 2), WPP (col 5) e Labels (col 6) pra caber no celular. */
  .mtbl thead th:nth-child(2),
  .mtbl tbody td.month,
  .mtbl thead th:nth-child(5),
  .mtbl tbody td.wpp,
  .mtbl thead th:nth-child(6),
  .mtbl tbody td.labels{display:none}
  .mtbl td.name{max-width:60vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

  /* CHAT WIDGET - vira bottom sheet ocupando largura total */
  #cp-chat-fab{right:14px;bottom:14px;width:44px;height:44px}
  #cp-chat-panel{
    right:0;left:0;bottom:0;
    width:100vw;max-width:100vw;
    height:78vh;max-height:78vh;
    border-radius:6px 6px 0 0;
    border-left:0;border-right:0;border-bottom:0;
  }

  /* UMBLER TALK aba - filtros/data pickers empilhados */
  #view-utalk .utalk-filters,
  #view-utalk .utalk-controls,
  #view-utalk [class*="filter-row"]{flex-wrap:wrap;gap:6px}
  #view-utalk input[type="date"]{flex:1 1 45%;min-width:140px}
  #view-utalk .utalk-kpi-row,
  #view-utalk [class*="kpi-row"]{grid-template-columns:repeat(2,1fr) !important}
  #view-utalk .utalk-row,
  #view-utalk [class*="lead-row"]{grid-template-columns:1fr !important;gap:6px;padding:12px 14px}
  /* tabela utalk vira lista vertical */
  #view-utalk table{display:block}
  #view-utalk thead{display:none}
  #view-utalk tbody,#view-utalk tr{display:block}
  #view-utalk tr{padding:10px 12px;border-bottom:1px solid #1f2937}
  #view-utalk td{display:block;padding:2px 0;font-size:11px}
  #view-utalk td:first-child{font-weight:600;font-size:13px;color:#c9d1d9}
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ============================================================
 * KANBAN VIEW — todo CSS escopado em #view-kanban para isolar
 * do restante do terminal. Classes nao prefixadas (.card, .modal,
 * .toast, etc.) sao herdadas mas nao colidem pois usamos o
 * seletor descendente #view-kanban .xxx ou IDs unicos kn*.
 * ============================================================ */
@keyframes kn-sk-pulse { 0%,100% { opacity: 0.45; } 50% { opacity: 0.7; } }

#view-kanban .kn-topbar-mini {
  display: flex; align-items: center; gap: 14px;
  padding: 8px 16px; background: #080b13;
  border-bottom: 1px solid #161b27; font-size: 11px; color: #6b7280;
  letter-spacing: .06em; text-transform: uppercase;
}
#view-kanban .kn-topbar-mini b { color: #f5a623; }
#view-kanban .kn-topbar-mini #knFilterInput {
  margin-left: auto; flex: 0 1 280px;
  background: #0a0e1a; border: 1px solid #2a3343; color: #e5e7eb;
  padding: 5px 10px; border-radius: 4px; font: inherit; font-size: 11px;
  text-transform: none; letter-spacing: 0;
}
#view-kanban .kn-topbar-mini #knFilterInput:focus { outline: none; border-color: #f5a623; }
#view-kanban .kn-topbar-mini #knClearFilter {
  background: transparent; border: none; color: #6b7280; cursor: pointer;
  font-size: 14px; padding: 0 4px;
}
#view-kanban .kn-topbar-mini #knClearFilter:hover { color: #f5a623; }
/* Botao Filtros (estilo Trello) */
#view-kanban #knFiltersBtn {
  background: #0a0e1a; border: 1px solid #2a3343; color: #cfd8dc;
  padding: 5px 12px; border-radius: 4px; font: inherit; font-size: 11px;
  cursor: pointer; text-transform: uppercase; letter-spacing: .04em;
  display: flex; align-items: center; gap: 6px;
}
#view-kanban #knFiltersBtn:hover { border-color: #f5a623; color: #f5a623; }
#view-kanban #knFiltersBtn.active { border-color: #f5a623; color: #f5a623; background: rgba(245,166,35,.06); }
#view-kanban #knFiltersBtn .badge {
  background: #f5a623; color: #080b13; font-weight: 700;
  padding: 0 6px; border-radius: 9px; font-size: 10px; min-width: 16px; text-align: center;
}
/* Popover de filtros estruturados */
#knFiltersPopover {
  position: absolute; top: 44px; right: 16px; z-index: 80;
  background: #0d1320; border: 1px solid #2a3343; border-radius: 6px;
  width: 360px; max-height: calc(100vh - 80px); overflow-y: auto;
  padding: 12px; box-shadow: 0 8px 24px rgba(0,0,0,.6);
  display: none; text-transform: none; letter-spacing: 0;
}
#knFiltersPopover.open { display: block; }
#knFiltersPopover .pop-header {
  display: flex; align-items: center; justify-content: space-between;
  padding-bottom: 8px; border-bottom: 1px solid #1f2937; margin-bottom: 10px;
}
#knFiltersPopover .pop-header b { color: #cfd8dc; font-size: 12px; font-weight: 700; }
#knFiltersPopover .pop-header .clear-all {
  background: transparent; border: none; color: #ef4444; cursor: pointer;
  font: inherit; font-size: 11px; padding: 2px 6px;
}
#knFiltersPopover .pop-header .clear-all:hover { background: rgba(239,68,68,.08); border-radius: 3px; }
#knFiltersPopover .pop-section { margin-bottom: 12px; }
#knFiltersPopover .pop-section h4 {
  font-size: 10px; color: #6b7280; margin: 0 0 6px; padding: 0;
  text-transform: uppercase; letter-spacing: .05em; font-weight: 600;
}
#knFiltersPopover .pop-chips { display: flex; flex-wrap: wrap; gap: 4px; }
#knFiltersPopover .pop-chip {
  background: #161b27; border: 1px solid #2a3343; color: #cfd8dc;
  padding: 4px 8px; border-radius: 12px; font-size: 11px; cursor: pointer;
  display: inline-flex; align-items: center; gap: 5px;
  transition: all 100ms ease;
}
#knFiltersPopover .pop-chip:hover { border-color: #f5a623; color: #f5a623; }
#knFiltersPopover .pop-chip.active { background: #f5a623; color: #080b13; border-color: #f5a623; font-weight: 600; }
#knFiltersPopover .pop-chip .cnt { font-size: 9px; opacity: .7; }
#knFiltersPopover .pop-empty { color: #6b7280; font-size: 11px; font-style: italic; padding: 4px 0; }
#knFiltersPopover .pop-footer { margin-top: 14px; padding-top: 10px; border-top: 1px solid #1f2937; }
#knFiltersPopover .pop-toggle { display: flex; align-items: center; gap: 8px; cursor: pointer; font-size: 11px; color: #cfd8dc; user-select: none; }
#knFiltersPopover .pop-toggle input[type=checkbox] { accent-color: #f5a623; cursor: pointer; }
#knFiltersPopover .pop-toggle:hover span { color: #f5a623; }
/* Botao ... no header da coluna + dropdown menu */
#view-kanban .col-head { position: relative; }
#view-kanban .col-menu-btn {
  background: transparent; border: none; color: #6b7280; cursor: pointer;
  font-size: 14px; padding: 0 6px; line-height: 1; margin-left: 4px;
  border-radius: 3px;
}
#view-kanban .col-menu-btn:hover { color: #f5a623; background: #161b27; }
#view-kanban .col-menu-btn.active { color: #f5a623; background: #161b27; }
#view-kanban .col-menu {
  position: absolute; top: 100%; right: 8px; z-index: 50;
  background: #0d1320; border: 1px solid #2a3343; border-radius: 4px;
  min-width: 180px; padding: 4px 0; margin-top: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  display: none; text-transform: none; letter-spacing: 0;
}
#view-kanban .col-menu.open { display: block; }
#view-kanban .col-menu .item {
  display: block; width: 100%; text-align: left; background: transparent;
  border: none; color: #cfd8dc; padding: 7px 12px; font: inherit; font-size: 11px;
  cursor: pointer;
}
#view-kanban .col-menu .item:hover { background: #161b27; color: #f5a623; }
#view-kanban .col-menu .item.active { color: #f5a623; }
#view-kanban .col-menu .item.danger { color: #ef4444; border-top: 1px solid #1f2937; margin-top: 2px; }
#view-kanban .col-menu .item.danger:hover { background: rgba(239,68,68,.08); }

/* Board — scroll horizontal igual Trello (colunas largura fixa, scroll dentro de cada coluna) */
#view-kanban .kn-board {
  display: flex; flex-direction: row; gap: 12px; padding: 12px 16px 24px;
  align-items: flex-start;
  overflow-x: auto; overflow-y: hidden;
  height: calc(100vh - 110px);
  scroll-snap-type: x proximity;
}
#view-kanban .kn-board::-webkit-scrollbar { height: 10px; }
#view-kanban .kn-board::-webkit-scrollbar-track { background: transparent; }
#view-kanban .kn-board::-webkit-scrollbar-thumb { background: #2a3343; border-radius: 5px; }
#view-kanban .col {
  background: #0a0e1a; border: 1px solid #161b27; border-radius: 6px;
  display: flex; flex-direction: column;
  flex: 0 0 280px; max-height: 100%;
  scroll-snap-align: start;
}
#view-kanban .col-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 12px; border-bottom: 1px solid #161b27;
  font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  color: #cfd8dc; position: sticky; top: 0; background: #0a0e1a; z-index: 1;
}
#view-kanban .col-head .count {
  font-size: 10px; padding: 2px 8px; border-radius: 10px;
  background: #161b27; color: #a78bfa; font-weight: 600;
}
#view-kanban .col-body { padding: 8px; overflow-y: auto; flex: 1; }
#view-kanban .col-body::-webkit-scrollbar { width: 8px; }
#view-kanban .col-body::-webkit-scrollbar-track { background: transparent; }
#view-kanban .col-body::-webkit-scrollbar-thumb { background: #2a3343; border-radius: 4px; }

/* Card (isolado sob #view-kanban para nao colidir com .card do terminal) */
#view-kanban .kn-card {
  background: #0d1320; border: 1px solid #1a2030; border-radius: 4px;
  padding: 10px 12px; margin-bottom: 8px; font-size: 12px;
  cursor: pointer; transition: border-color 80ms ease, background 80ms ease, transform 100ms ease, opacity 100ms ease;
  user-select: none;
}
#view-kanban .kn-card:hover { border-color: #f5a623; background: #101729; }
#view-kanban .kn-card:focus { outline: 2px solid #f5a623; outline-offset: 1px; }
#view-kanban .kn-card .name { color: #e8eaed; font-weight: 500; line-height: 1.35; margin-bottom: 6px; overflow-wrap: anywhere; }
#view-kanban .kn-card .meta { display: flex; flex-wrap: wrap; gap: 6px; font-size: 10px; color: #8b97a8; }
#view-kanban .kn-card .badge { padding: 1px 6px; border-radius: 8px; background: #161b27; font-weight: 600; letter-spacing: .03em; }
#view-kanban .kn-card .badge.idle { background: rgba(167,139,250,.12); color: #a78bfa; }
#view-kanban .kn-card .badge.idle.warn { background: rgba(245,166,35,.12); color: #f5a623; }
#view-kanban .kn-card .badge.idle.alert { background: rgba(239,68,68,.14); color: #ef4444; }
#view-kanban .kn-card .badge.month { background: rgba(79,156,249,.12); color: #4f9cf9; }
#view-kanban .kn-card .labels { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
#view-kanban .kn-card .label { font-size: 9px; padding: 1px 6px; border-radius: 8px; background: rgba(34,197,94,.12); color: #22c55e; font-weight: 600; }
#view-kanban .kn-card .members { color: #a78bfa; font-weight: 600; }
#view-kanban .kn-card.dragging { opacity: .45; transform: rotate(1.5deg); }
#view-kanban .kn-card.sending { opacity: .55; pointer-events: none; border-color: #f5a623; }
#view-kanban .kn-card.kn-card-broken { opacity: 0.55; cursor: not-allowed; border-style: dashed; }
#view-kanban .col-body.drag-over { background: rgba(245,166,35,.05); box-shadow: inset 0 0 0 2px rgba(245,166,35,.4); }
#view-kanban .sortable-ghost { background: rgba(245,166,35,.08) !important; border: 1px dashed #f5a623 !important; }
#view-kanban .kn-empty { text-align: center; padding: 30px 12px; color: #8b97a8; font-size: 11px; }
#view-kanban .kn-empty b { display: block; color: #cfd8dc; margin-bottom: 4px; font-size: 13px; }
#view-kanban .kn-add-card {
  display: block; width: calc(100% - 16px); margin: 8px 8px 6px;
  background: transparent; border: 1px dashed #2a3343; color: #8b97a8;
  padding: 8px 10px; border-radius: 4px; font: inherit; font-size: 11px;
  font-weight: 700; letter-spacing: 0.04em; cursor: pointer;
  text-transform: uppercase; flex: 0 0 auto;
}
#view-kanban .kn-add-card:hover, #view-kanban .kn-add-card:focus-visible {
  border-color: #f5a623; color: #f5a623; background: rgba(245,166,35,0.05); outline: none;
}

/* Modal estilo Trello (overlay separado, IDs prefixados kn) */
#knModalOverlay {
  position: fixed; inset: 0; background: rgba(0,0,0,.7);
  z-index: 200; display: none; align-items: flex-start; justify-content: center;
  padding: 32px 20px; overflow-y: auto;
}
#knModalOverlay.open { display: flex; }
#knModal {
  background: #0a0e1a; border: 1px solid #2a3343; border-radius: 8px;
  width: min(1100px, 100%); max-height: calc(100vh - 64px);
  display: grid; grid-template-rows: auto 1fr; overflow: hidden;
}
#knModal .modal-topbar {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 16px; border-bottom: 1px solid #161b27; background: #080b13; gap: 12px;
}
#knModal .modal-list-pill {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 5px 12px; border-radius: 4px;
  background: rgba(167,139,250,.12); color: #a78bfa;
  font: inherit; font-size: 11px; font-weight: 700; letter-spacing: .04em;
  text-transform: uppercase; border: 1px solid transparent;
}
#knModal button.modal-list-pill { cursor: pointer; }
#knModal button.modal-list-pill:focus-visible { outline: 2px solid #f5a623; outline-offset: 2px; }
#knModal .modal-list-pill.clickable { cursor: pointer; transition: background 80ms; }
#knModal .modal-list-pill.clickable:hover { background: rgba(167,139,250,.22); }
#knModal .modal-list-pill.clickable::after { content: " \25BE"; opacity: .7; font-size: 9px; margin-left: 4px; }
#knModal .modal-topbar .actions { display: flex; gap: 6px; flex-shrink: 0; }
#knModal .modal-topbar .actions a,
#knModal .modal-topbar .actions button {
  background: transparent; border: 1px solid #2a3343; color: #cfd8dc;
  padding: 5px 10px; border-radius: 4px; font: inherit; font-size: 11px;
  cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; gap: 5px;
}
#knModal .modal-topbar .actions a:hover,
#knModal .modal-topbar .actions button:hover { border-color: #f5a623; color: #f5a623; text-decoration: none; }
#knModal .modal-topbar .actions .close-x { border: none; padding: 6px 10px; font-size: 16px; line-height: 1; min-width: 32px; min-height: 32px; }
#knModal .modal-grid {
  display: grid; grid-template-columns: minmax(0,1fr) 380px;
  overflow: hidden; min-height: 0;
}
#knModal .modal-main, #knModal .modal-side {
  overflow-y: auto; min-height: 0;
}
#knModal .modal-main::-webkit-scrollbar, #knModal .modal-side::-webkit-scrollbar { width: 8px; }
#knModal .modal-main::-webkit-scrollbar-thumb, #knModal .modal-side::-webkit-scrollbar-thumb { background: #2a3343; border-radius: 4px; }
/* === REFINAMENTO TRELLO-LIKE: modal mais compacto + tipografia limpa === */
#knModal .modal-main { padding: 16px 22px 20px; }
#knModal .modal-side { padding: 14px 16px; background: #080b13; border-left: 1px solid #161b27; }
#knModal .card-head { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 10px; }
#knModal .card-head .icon { width: 16px; height: 16px; border: 1.5px solid #2a3343; border-radius: 50%; flex-shrink: 0; margin-top: 4px; }
#knModal .card-head h2 { margin: 0; font-size: 17px; font-weight: 700; color: #e8eaed; line-height: 1.3; overflow-wrap: anywhere; }
#knModal .action-chips { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 14px; padding-left: 26px; }
#knModal .action-chip {
  background: #161b27; border: 1px solid transparent; color: #cfd8dc;
  padding: 5px 10px; border-radius: 3px; font: inherit; font-size: 11px;
  cursor: pointer; display: inline-flex; align-items: center; gap: 5px;
}
#knModal .action-chip:hover, #knModal .action-chip:focus-visible { border-color: #f5a623; color: #f5a623; outline: none; }
#knModal .action-chip.danger { color: #ef4444; }
#knModal .action-chip.danger:hover { border-color: #ef4444; color: #fff; background: rgba(239,68,68,.15); }
#knModal .archived-banner {
  background: rgba(239,68,68,.10); border: 1px dashed #5a1a1a; color: #ef4444;
  padding: 8px 14px; border-radius: 4px; font-size: 11px; font-weight: 700;
  margin-bottom: 14px; display: flex; align-items: center; justify-content: space-between;
  letter-spacing: .04em; text-transform: uppercase;
}
#knModal .meta-row { display: flex; flex-wrap: wrap; gap: 18px; margin-bottom: 16px; padding-left: 26px; }
#knModal .meta-block { display: flex; flex-direction: column; gap: 4px; }
#knModal .meta-block .lbl { font-size: 9px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #6b7280; }
#knModal .meta-block .row { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
#knModal .member-chip {
  display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; border-radius: 50%; overflow: hidden;
  background: #2a3343; color: #0a0e1a; font-weight: 700; font-size: 11px;
  border: 1.5px solid #0a0e1a; margin-left: -6px; cursor: default;
}
#knModal .member-chip:first-child { margin-left: 0; }
#knModal .member-chip img { width: 100%; height: 100%; display: block; }
#knModal .member-chip .ini { width: 100%; height: 100%; display: inline-flex; align-items: center; justify-content: center; background: #a78bfa; color: #0a0e1a; }
#knModal .label-chip {
  display: inline-block; padding: 4px 12px; border-radius: 4px;
  background: rgba(34,197,94,.14); color: #22c55e; font-weight: 700;
  font-size: 11px; letter-spacing: .03em;
}
#knModal .label-chip.col-yellow { background: rgba(245,166,35,.14); color: #f5a623; }
#knModal .label-chip.col-red { background: rgba(239,68,68,.16); color: #ef4444; }
#knModal .label-chip.col-blue, #knModal .label-chip.col-sky { background: rgba(79,156,249,.14); color: #4f9cf9; }
#knModal .label-chip.col-purple { background: rgba(167,139,250,.14); color: #a78bfa; }
#knModal .label-chip.col-pink { background: rgba(236,72,153,.14); color: #ec4899; }
#knModal .label-chip.col-orange { background: rgba(249,115,22,.14); color: #f97316; }
#knModal .label-chip.col-black, #knModal .label-chip.col-black_light { background: rgba(255,255,255,.08); color: #cfd8dc; }
#knModal .label-chip .x { margin-left: 6px; opacity: .55; font-weight: 700; cursor: pointer; display: inline-block; padding: 0 2px; background: transparent; border: 0; color: inherit; font: inherit; line-height: 1; }
#knModal .label-chip .x:hover, #knModal .label-chip .x:focus-visible { opacity: 1; outline: 1px solid currentColor; outline-offset: 1px; border-radius: 2px; }
#knModal .label-add {
  display: inline-flex; align-items: center; padding: 4px 10px; border-radius: 4px;
  background: #11151e; border: 1px dashed #2a3343; color: #8b97a8;
  font: inherit; font-size: 11px; font-weight: 700; letter-spacing: .03em; cursor: pointer;
}
#knModal .label-add:hover, #knModal .label-add:focus-visible { border-color: #f5a623; color: #f5a623; outline: none; }
#knModal .section { margin-bottom: 16px; padding-left: 26px; position: relative; }
#knModal .section .ico { position: absolute; left: 0; top: 0; width: 16px; height: 16px; color: #6b7280; font-size: 12px; line-height: 16px; text-align: center; }
#knModal .section h3 { font-size: 12px; font-weight: 700; color: #cfd8dc; margin: 0 0 8px 0; letter-spacing: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
#knModal .section h3 .h-action { display: none; }
#knModal .desc-box { white-space: pre-wrap; font-size: 13px; color: #cfd8dc; background: #11151e; border: 1px solid #1a2030; padding: 12px 14px; border-radius: 4px; line-height: 1.5; }
#knModal .desc-empty { background: #0d1320; border: 1px solid #1a2030; border-radius: 4px; padding: 12px 14px; color: #8b97a8; font-size: 12px; font-style: italic; }
#knModal .due-box { display: inline-flex; align-items: center; gap: 8px; background: #11151e; border: 1px solid #1a2030; border-radius: 4px; padding: 8px 12px; font-size: 12px; color: #e8eaed; }
#knModal .due-box .complete { color: #22c55e; font-weight: 600; }
#knModal .due-box.empty { border: 1px dashed #2a3343; background: #0d1320; padding: 8px 14px; }
#knModal .due-box.empty:hover { border-color: #f5a623; }
#knModal .due-box.empty .empty { color: #a4b0be; font-style: italic; }
#knModal .due-toggle { background: transparent; border: 1px solid #2a3343; color: #8b97a8; padding: 4px 9px; border-radius: 50%; font: inherit; font-size: 12px; cursor: pointer; line-height: 1; }
#knModal .due-toggle:hover { border-color: #22c55e; color: #22c55e; }
/* Campos personalizados: layout MUITO COMPACTO — colapsa altura ao minimo,
   esconde texto "(vazio)" do JS, mostra so um "+" sutil. */
#knModal .cf-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0; align-items: start; }
#knModal .cf-cell { background: transparent; border: 0; border-radius: 2px; padding: 3px 8px; font-size: 11px; display: flex; flex-direction: column; gap: 0; min-height: 0; transition: background 80ms; }
#knModal .cf-cell:hover { background: rgba(245,166,35,.04); }
#knModal .cf-cell .k { font-size: 8px; text-transform: uppercase; letter-spacing: .06em; color: #6b7280; font-weight: 700; line-height: 1.4; }
#knModal .cf-cell .v { color: #e8eaed; overflow-wrap: anywhere; font-size: 11px; line-height: 1.4; min-height: 14px; }
/* Vazio: input-like discreto com "Adicionar" placeholder (estilo Trello) */
#knModal .cf-cell .v.empty {
  font-size: 0;
  background: rgba(255,255,255,0.015);
  border: 1px dashed #1f2937;
  border-radius: 3px;
  padding: 3px 8px;
  display: block;
  min-height: 20px;
  line-height: 1.3;
}
#knModal .cf-cell .v.empty::before {
  content: "+ Adicionar";
  font-size: 10px;
  color: #4b5563;
  font-style: normal;
}
#knModal .cf-cell .v.empty.clickable:hover {
  background: rgba(245,166,35,0.04);
  border-color: rgba(245,166,35,.4);
}
#knModal .cf-cell .v.empty.clickable:hover::before { color: #f5a623; }
#knModal .cf-cell .v.list-opt { display: inline-block; padding: 2px 10px; border-radius: 4px; background: rgba(79,156,249,.14); color: #4f9cf9; font-weight: 600; }
#knModal .cf-cell.editing { outline: 1px solid #f5a623; outline-offset: -1px; }
#knModal .cf-cell .v.clickable { cursor: pointer; transition: filter 80ms, outline-color 80ms; }
#knModal .cf-cell .v.clickable:hover { outline: none; }
#knModal .cf-cell .v.empty.clickable:hover { color: inherit; }
#knModal .cf-cell .v.list-opt.clickable::after { content: " \25BE"; opacity: .55; font-size: 9px; margin-left: 4px; }
#knModal .cf-cell .editor-input { width: 100%; background: #0a0e1a; border: 1px solid #2a3343; border-radius: 3px; color: #e8eaed; font: inherit; font-size: 12px; padding: 4px 6px; resize: vertical; min-height: 22px; }
#knModal textarea.cf-cell .editor-input { font-family: inherit; line-height: 1.5; }
#knModal .cf-cell .editor-input:focus { outline: 1px solid #f5a623; border-color: #f5a623; }
#knModal .cf-cell .cf-saving { color: #f5a623; font-size: 11px; font-style: italic; }
#knModal .att-list { list-style: none; margin: 0; padding: 0; }
#knModal .att-item { background: #11151e; border: 1px solid #1a2030; border-radius: 3px; padding: 6px 10px; margin-bottom: 3px; font-size: 11px; display: flex; align-items: center; gap: 10px; }
#knModal .att-thumb { width: 36px; height: 26px; flex-shrink: 0; border-radius: 3px; background: #1a2030; display: flex; align-items: center; justify-content: center; color: #8b97a8; font-size: 8px; font-weight: 700; letter-spacing: .06em; }
#knModal .att-info { flex: 1; min-width: 0; }
#knModal .att-info a { color: #4f9cf9; word-break: break-all; font-weight: 500; font-size: 11px; }
#knModal .att-info .att-meta { font-size: 9px; color: #6b7280; margin-top: 2px; }
#knModal .att-item .att-x { background: transparent; border: 0; color: #8b97a8; font: inherit; cursor: pointer; padding: 4px 6px; margin-left: auto; font-size: 12px; }
#knModal .att-item .att-x:hover, #knModal .att-item .att-x:focus-visible { color: #ef4444; outline: 1px solid #ef4444; outline-offset: 1px; border-radius: 2px; }
#knModal .ck-block { background: #0d1320; border: 1px solid #1a2030; border-radius: 4px; padding: 10px 12px; margin-bottom: 8px; }
#knModal .ck-block-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
#knModal .ck-block-head .nm { font-weight: 700; color: #e8eaed; font-size: 12px; }
#knModal .ck-block-head .pct { font-size: 10px; color: #8b97a8; }
#knModal .ck-bar { height: 4px; background: #1a2030; border-radius: 2px; overflow: hidden; margin-bottom: 8px; }
#knModal .ck-bar-fill { height: 100%; background: #22c55e; transition: width 200ms; }
#knModal .ck-list { list-style: none; margin: 0; padding: 0; }
#knModal .ck-item { display: flex; align-items: center; gap: 10px; padding: 6px 4px; font-size: 12px; }
#knModal .ck-item .box { width: 16px; height: 16px; border: 1.5px solid #2a3343; border-radius: 3px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; font-size: 11px; color: transparent; }
#knModal .ck-item.complete .box { background: #22c55e; border-color: #22c55e; color: #0a0e1a; }
#knModal .ck-item.complete .name { color: #8b97a8; text-decoration: line-through; }
/* checklist interactive */
#knModal .ck-item .box { cursor: pointer; }
#knModal .ck-item .box:hover { border-color: #22c55e; background: rgba(34,197,94,.12); color: #22c55e; }
#knModal .ck-item .name { cursor: pointer; flex: 1; }
#knModal .ck-item .name:hover { color: #f5a623; }
#knModal .ck-rm-item { background: transparent; border: 0; color: transparent; font: inherit; font-size: 13px; cursor: pointer; padding: 0 4px; line-height: 1; border-radius: 2px; flex-shrink: 0; transition: color .1s; }
#knModal .ck-item:hover .ck-rm-item { color: #8b97a8; }
#knModal .ck-rm-item:hover, #knModal .ck-rm-item:focus-visible { color: #ef4444 !important; outline: 1px solid #ef4444; outline-offset: 1px; }
#knModal .ck-rm-checklist { background: transparent; border: 0; color: #6b7280; font: inherit; font-size: 14px; cursor: pointer; padding: 0 4px; line-height: 1; border-radius: 2px; flex-shrink: 0; transition: color .1s; }
#knModal .ck-rm-checklist:hover, #knModal .ck-rm-checklist:focus-visible { color: #ef4444; outline: 1px solid #ef4444; outline-offset: 1px; }
#knModal .ck-block-head { gap: 8px; }
#knModal .ck-block-head .nm { flex: 1; }
#knModal .ck-add-item { display: flex; margin-top: 4px; }
#knModal .ck-add-item input { flex: 1; background: transparent; border: 0; border-bottom: 1px dashed #2a3343; color: #c9d1d9; font: inherit; font-size: 11px; padding: 4px 2px; outline: none; }
#knModal .ck-add-item input:focus { border-bottom-color: #f5a623; }
#knModal .ck-add-item input::placeholder { color: #4b5563; }
#knModal .ck-add-checklist { display: flex; margin-top: 8px; }
#knModal .ck-add-checklist input { flex: 1; background: transparent; border: 0; border-bottom: 1px dashed #1a2030; color: #c9d1d9; font: inherit; font-size: 11px; padding: 4px 2px; outline: none; }
#knModal .ck-add-checklist input:focus { border-bottom-color: #f5a623; }
#knModal .ck-add-checklist input::placeholder { color: #374151; }
#knModal .ck-edit-input { flex: 1; background: #0a0e1a; border: 1px solid #f5a623; border-radius: 2px; color: #e8eaed; font: inherit; font-size: 12px; padding: 1px 4px; outline: none; min-width: 0; }
#knModal .side-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
#knModal .side-head h3 { margin: 0; font-size: 13px; color: #cfd8dc; font-weight: 700; display: inline-flex; align-items: center; gap: 8px; }
#knModal .comment-form { margin-bottom: 14px; }
#knModal .comment-input { width: 100%; box-sizing: border-box; background: #11151e; border: 1px solid #1a2030; border-radius: 4px; padding: 8px 10px; color: #e8eaed; font: inherit; font-size: 12px; resize: vertical; min-height: 40px; }
#knModal .comment-input:focus { outline: 1px solid #f5a623; border-color: #f5a623; }
#knModal .comment-actions { display: flex; justify-content: flex-end; gap: 6px; margin-top: 6px; }
#knModal .comment-send { background: #f5a623; border: 0; color: #0a0e1a; padding: 6px 16px; border-radius: 4px; font: inherit; font-size: 11px; font-weight: 700; cursor: pointer; }
#knModal .comment-send:hover { filter: brightness(1.1); }
#knModal .comment-send:disabled { background: #2a3343; color: #8b97a8; cursor: wait; }
#knModal .btn-primary, #knModal .btn-secondary, #knModal .btn-ghost { border-radius: 4px; font: inherit; font-size: 11px; font-weight: 700; padding: 6px 14px; cursor: pointer; line-height: 1; border: 1px solid transparent; }
#knModal .btn-primary { background: #f5a623; color: #0a0e1a; border-color: #f5a623; }
#knModal .btn-primary:hover { filter: brightness(1.1); }
#knModal .btn-secondary { background: transparent; color: #cfd8dc; border-color: #2a3343; }
#knModal .btn-secondary:hover { border-color: #f5a623; color: #f5a623; }
#knModal .btn-ghost { background: transparent; color: #8b97a8; border-color: transparent; }
#knModal .btn-ghost:hover { color: #cfd8dc; }
#knModal .btn-sm { padding: 4px 10px; font-size: 10px; }
#knModal .edit-actions { display: flex; gap: 6px; justify-content: flex-end; margin-top: 6px; }
#knModal .editor-input-h2 { font-size: 20px !important; font-weight: 700; padding: 6px 8px !important; width: 100%; color: #f5a623; }
#knModal h2.editable, #knModal .desc-box.editable, #knModal .desc-empty.editable, #knModal .due-box.editable { cursor: pointer; transition: background 80ms, outline-color 80ms; border-radius: 4px; }
#knModal h2.editable:hover, #knModal .desc-box.editable:hover, #knModal .desc-empty.editable:hover, #knModal .due-box.editable:hover { outline: 1px solid #f5a623; outline-offset: 2px; }
#knModal .desc-empty.editable { border: 1px dashed #2a3343; background: #0d1320; color: #a4b0be; font-style: italic; }
#knModal .desc-empty.editable::before { content: "+ "; color: #f5a623; font-weight: 700; font-style: normal; }
#knModal button.member-chip-btn { width: 28px; height: 28px; border-radius: 50%; overflow: hidden; background: #2a3343; color: #0a0e1a; font-weight: 700; font-size: 11px; border: 1.5px solid #0a0e1a; margin-left: -6px; padding: 0; cursor: pointer; position: relative; display: inline-flex; align-items: center; justify-content: center; }
#knModal button.member-chip-btn:first-of-type { margin-left: 0; }
#knModal button.member-chip-btn img { width: 100%; height: 100%; display: block; }
#knModal button.member-chip-btn .ini { width: 100%; height: 100%; display: inline-flex; align-items: center; justify-content: center; background: #a78bfa; color: #0a0e1a; }
#knModal button.member-chip-btn:hover::after { content: "\00d7"; position: absolute; inset: 0; background: rgba(239,68,68,.85); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 16px; font-weight: 700; }
#knModal button.member-chip-btn:focus-visible { outline: 2px solid #f5a623; outline-offset: 2px; }
#knModal button.member-add { width: 28px; height: 28px; border-radius: 50%; background: transparent; border: 1px dashed #2a3343; color: #8b97a8; margin-left: 4px; font: inherit; font-size: 14px; line-height: 1; padding: 0; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
#knModal button.member-add:hover, #knModal button.member-add:focus-visible { border-color: #f5a623; color: #f5a623; outline: none; }
#knModal .act-list { list-style: none; margin: 0; padding: 0; }
#knModal .act-item { display: grid; grid-template-columns: 24px 1fr; gap: 8px; padding: 6px 0; border-bottom: 1px solid #11151e; }
#knModal .act-item:last-child { border-bottom: none; }
#knModal .act-avatar { width: 24px; height: 24px; border-radius: 50%; background: #2a3343; color: #cfd8dc; font-weight: 700; font-size: 9px; display: inline-flex; align-items: center; justify-content: center; overflow: hidden; flex-shrink: 0; }
#knModal .act-avatar.purple { background: #a78bfa; color: #0a0e1a; }
#knModal .act-avatar.green { background: #22c55e; color: #0a0e1a; }
#knModal .act-avatar.blue { background: #4f9cf9; color: #0a0e1a; }
#knModal .act-avatar.amber { background: #f5a623; color: #0a0e1a; }
#knModal .act-body { font-size: 11px; color: #cfd8dc; line-height: 1.4; }
#knModal .act-body b { color: #e8eaed; font-weight: 700; }
#knModal .act-body i { color: #4f9cf9; font-style: normal; font-weight: 600; }
#knModal .act-body .ts { display: block; font-size: 9px; color: #6b7280; margin-top: 1px; }
#knModal .act-comment { margin-top: 3px; background: #11151e; border: 1px solid #1a2030; padding: 6px 9px; border-radius: 3px; color: #e8eaed; white-space: pre-wrap; font-size: 11px; }
#knModal .modal-loading { grid-column: 1/-1; text-align: center; padding: 80px 20px; color: #8b97a8; font-size: 12px; }
#knModal .modal-loading .dot { color: #f5a623; letter-spacing: .3em; font-size: 14px; margin-bottom: 8px; }
#knModal .modal-error { grid-column: 1/-1; margin: 20px; background: rgba(239,68,68,.06); border: 1px dashed #5a1a1a; color: #ef4444; padding: 16px; border-radius: 4px; font-size: 12px; }
#knModal .empty-msg { color: #8b97a8; font-size: 12px; font-style: italic; padding: 8px 0; }
#knModal .sk { display: block; background: linear-gradient(90deg,#11151e 0%,#1a2030 50%,#11151e 100%); background-size: 200% 100%; border-radius: 3px; animation: kn-sk-pulse 1.4s ease-in-out infinite; }
#knModal .sk-title { height: 22px; width: 60%; margin-top: 4px; }
#knModal .sk-chip { display: inline-block; height: 20px; width: 80px; margin-right: 6px; vertical-align: middle; border-radius: 10px; }
#knModal .sk-block { height: 36px; margin: 6px 0; width: 100%; }
#knModal .sk-line { display: inline-block; height: 12px; width: 70%; vertical-align: middle; }

/* Popover kanban (IDs kn*) */
#knPopoverOverlay { position: fixed; inset: 0; z-index: 250; display: none; }
#knPopoverOverlay.open { display: block; }
#knPopover {
  position: absolute; z-index: 251;
  background: #0a0e1a; border: 1px solid #2a3343; border-radius: 6px;
  min-width: 220px; max-width: 320px; max-height: 360px; overflow-y: auto;
  box-shadow: 0 12px 32px rgba(0,0,0,.5); padding: 6px;
}
#knPopover .popover-title { font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #8b97a8; padding: 6px 8px 4px; border-bottom: 1px solid #161b27; margin-bottom: 4px; }
#knPopover .popover-item { display: flex; align-items: center; gap: 8px; padding: 7px 10px; border-radius: 4px; font-size: 12px; color: #cfd8dc; cursor: pointer; }
#knPopover .popover-item:hover { background: #11151e; color: #f5a623; }
#knPopover .popover-item.active { background: rgba(245,166,35,.10); color: #f5a623; }
#knPopover .popover-item.active::before { content: "\2713\00a0"; color: #22c55e; font-weight: 700; }
#knPopover .popover-search { width: 100%; background: #0d1320; border: 1px solid #1a2030; color: #cfd8dc; padding: 6px 8px; border-radius: 4px; font: inherit; font-size: 11px; margin-bottom: 4px; }
#knPopover .popover-search:focus { border-color: #f5a623; outline: none; }
#knPopover .popover-empty { padding: 10px; color: #8b97a8; font-size: 11px; text-align: center; font-style: italic; }
#knPopover .popover-swatch { width: 14px; height: 8px; border-radius: 2px; flex-shrink: 0; background: #2a3343; }

/* kn-toast (nao colide com .toast do terminal) */
.kn-toast {
  position: fixed; bottom: 60px; right: 24px; z-index: 300;
  background: #0a0e1a; border: 1px solid #2a3343; border-radius: 6px;
  padding: 12px 16px; color: #cfd8dc; font-size: 12px;
  font-family: "JetBrains Mono","IBM Plex Mono","SF Mono",Consolas,monospace;
  max-width: 400px; opacity: 0; transform: translateY(8px);
  transition: opacity 160ms ease, transform 160ms ease;
  pointer-events: none; box-shadow: 0 8px 24px rgba(0,0,0,.5);
}
.kn-toast.show { opacity: 1; transform: translateY(0); }
.kn-toast.ok { border-color: #22c55e; }
.kn-toast.err { border-color: #ef4444; color: #fff; }

@media (max-width: 900px) {
  #knModal .modal-grid { grid-template-columns: 1fr; }
  #knModal .modal-side { border-left: none; border-top: 1px solid #161b27; }
}
@media (max-width: 760px) {
  #view-kanban .kn-board { flex-direction: column; height: auto; overflow-x: visible; padding: 8px; gap: 8px; }
  #view-kanban .col { flex: 0 0 auto; max-height: none; width: 100%; }
  #knModalOverlay { padding: 0; align-items: stretch; }
  #knModal { width: 100%; max-height: 100vh; border-radius: 0; border: none; }
  #knModal .modal-main { padding: 16px; }
  #knModal .action-chips, #knModal .meta-row, #knModal .section { padding-left: 0; }
  #knModal .section .ico { display: none; }
  #knModal .cf-grid { grid-template-columns: 1fr; }
  #knModal .modal-topbar .actions a { min-height: 44px; padding: 8px 12px; }
  #knModal .modal-topbar .actions .close-x { padding: 10px 14px; min-width: 44px; min-height: 44px; font-size: 18px; }
}

/* ============================================================
 * ABA PERFORMANCE — avaliacao atendentes (admin-only)
 * ============================================================ */
.perf-header{padding:12px 16px;border-bottom:1px solid #1f2937}
.perf-title{font-size:11px;color:#6b7280;letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px}
.perf-controls{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px}
.perf-label{font-size:10px;color:#6b7280;letter-spacing:.05em;text-transform:uppercase}
.perf-chip{background:#0a0e1a;border:1px solid #2a3343;color:#cfd8dc;padding:5px 12px;border-radius:4px;font:inherit;font-size:11px;cursor:pointer;text-transform:uppercase;letter-spacing:.04em}
.perf-chip:hover{border-color:#f5a623;color:#f5a623}
.perf-chip.active{border-color:#f5a623;color:#f5a623;background:rgba(245,166,35,.06)}
.perf-meta{font-size:10px;color:#94a3b8}
.perf-radar-wrap{padding:16px;height:280px;border-bottom:1px solid #1f2937;display:flex;align-items:center;justify-content:center}
.perf-radar-wrap canvas{max-height:248px}
.perf-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;padding:16px;border-bottom:1px solid #1f2937}
.perf-card{background:#0a0e1a;border:1px solid #161b27;border-radius:6px;padding:14px}
.perf-card .perf-name{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#cfd8dc;margin-bottom:8px;font-weight:700}
.perf-card .perf-score-row{display:flex;align-items:baseline;gap:10px;margin-bottom:6px}
.perf-card .perf-score{font-size:32px;font-weight:700;font-variant-numeric:tabular-nums}
.perf-card .perf-cat{font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;padding:3px 8px;border-radius:3px}
.perf-card .perf-cat.equilibrado{background:rgba(79,156,249,.12);color:#4f9cf9;border:1px solid #4f9cf9}
.perf-card .perf-cat.operacional{background:rgba(34,211,238,.12);color:#22d3ee;border:1px solid #22d3ee}
.perf-card .perf-cat.atencao{background:rgba(245,166,35,.12);color:#f5a623;border:1px solid #f5a623}
.perf-card .perf-deltas{font-size:10px;color:#6b7280;margin-bottom:10px;display:flex;flex-direction:column;gap:2px}
.perf-card .perf-deltas .up{color:#22c55e}
.perf-card .perf-deltas .down{color:#ef4444}
.perf-card .perf-bars{display:flex;flex-direction:column;gap:6px;margin-bottom:10px;padding:8px 0;border-top:1px solid #1f2937;border-bottom:1px solid #1f2937}
.perf-bar{display:flex;align-items:center;gap:8px;font-size:10px}
.perf-bar .lbl{width:60px;color:#94a3b8;letter-spacing:.04em;text-transform:uppercase}
.perf-bar .track{flex:1;height:6px;background:#161b27;border-radius:3px;overflow:hidden}
.perf-bar .fill{height:100%;background:#f5a623;border-radius:3px;transition:width 200ms}
.perf-bar .val{width:30px;text-align:right;color:#cfd8dc;font-variant-numeric:tabular-nums}
.perf-card .perf-context{font-size:10px;color:#94a3b8;display:flex;flex-direction:column;gap:3px}
.perf-card .perf-context b{color:#cfd8dc}
.perf-card .perf-context .wpp-warn{color:#a78bfa;cursor:help;border-bottom:1px dotted #a78bfa}
.perf-card .perf-spark{margin-top:8px;height:24px;opacity:.65}
.perf-table-wrap{padding:16px;border-bottom:1px solid #1f2937}
#perfTableHeader{grid-template-columns:1.4fr 0.6fr 0.6fr 0.7fr 0.6fr 0.6fr 0.6fr 0.7fr;display:flex;gap:10px;padding:8px 12px;font-size:9px;color:#6b7280;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid #1f2937}
#perfTableHeader > div{flex:1}
#perfTable .crit-row{cursor:default}
.perf-orphans{padding:16px;font-size:11px;color:#94a3b8}
.perf-orphans b{color:#a78bfa}
.perf-orphans .orph-cards{margin-top:6px;font-size:10px;color:#6b7280}
.perf-loading{padding:40px;text-align:center;color:#6b7280;font-size:11px;letter-spacing:.06em}
/* AUDITORIA DE EDIÇÕES */
.utk-audit-row{display:grid;grid-template-columns:150px 1.2fr 0.8fr 2fr 0.8fr;gap:8px;padding:6px 8px;border-bottom:1px solid #1f2937;font-size:11px;align-items:start}
.utk-audit-header{font-size:9px;color:#6b7280;text-transform:uppercase;letter-spacing:.08em;background:#080b13;align-items:center;padding:7px 8px}
.utk-audit-row:not(.utk-audit-header):hover{background:#0e1320}
#utkAuditSection button.active{color:#22c55e;border-color:#22c55e;background:rgba(34,197,94,.08)}
#utkAuditHeader:hover span[style*="color:#22c55e"]{color:#4ade80!important}
#utkAuditHeader[aria-expanded="true"] #utkAuditChevron{color:#22c55e}
