/* VxGP app shell + estilos especificos dos modulos do core. Tokens em tokens.css e primitivos
   compartilhados em base.css (ambos congelados, carregados ANTES deste arquivo no index.html). */

/* login */
.login-wrap{width:100%;max-width:420px;padding:24px}
.brand{text-align:center;margin-bottom:20px}
.brand-mark{font-weight:700;font-size:28px;color:var(--navy);letter-spacing:-.02em}
.brand-sub{color:var(--teal);font-size:12px}
.login-card h1{font-size:15px;color:var(--navy);margin-bottom:16px}
.login-card label{display:block;font-size:11px;text-transform:uppercase;color:var(--gray-500);margin:12px 0 4px}
.login-card input{width:100%;border:1px solid var(--gray-300);border-radius:var(--r-ctrl);padding:9px 11px;font:400 13px 'Space Grotesk'}
.login-card input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 2px rgba(0,180,180,.25)}
.login-card .btn-primary{margin-top:18px}
.login-foot{text-align:center;font-size:10px;text-transform:uppercase;color:var(--gray-400);margin-top:16px;letter-spacing:.04em}
.banner-error{background:var(--neg-bg);color:var(--neg);border-radius:var(--r-ctrl);padding:10px 12px;font-size:12px;margin-bottom:8px}

/* topbar (sticky: nao desce no scroll; z abaixo do .overlay=50 p/ modais cobrirem) */
.topbar{background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:14px 24px;gap:16px;flex-wrap:wrap;position:sticky;top:0;z-index:30}
.topbar-left,.topbar-right{display:flex;align-items:center;gap:14px}
.tb-back{display:inline-flex;align-items:center;gap:6px;height:34px;background:var(--navy-light);color:#fff;border:none;border-radius:var(--r-ctrl);padding:0 13px;font:600 12px 'Space Grotesk';cursor:pointer;transition:background .12s}
.tb-back:hover{background:rgba(255,255,255,.18)}
.tb-back.hidden{display:none}
.logo-mark{font-weight:700;font-size:18px;letter-spacing:-.02em;cursor:pointer}
.topbar-sub{color:var(--teal);font-size:11px}
/* seletor de ÁREA: pílula com altura do topbar; select nativo normalizado p/ alinhar o texto com o label */
.area-pick{display:inline-flex;align-items:center;gap:7px;height:34px;background:var(--navy-light);padding:0 12px;border-radius:var(--r-ctrl)}
.area-pick label{font-size:10px;line-height:1;color:var(--gray-300);text-transform:uppercase;letter-spacing:.04em}
.area-pick select{appearance:none;-webkit-appearance:none;background:transparent;color:#fff;border:none;padding:0;margin:0;height:100%;line-height:1;font:600 13px 'Space Grotesk';cursor:pointer}
.area-pick select:disabled{cursor:default;opacity:.85}
.area-pick select option{color:var(--navy)}
.acct{font-size:12px;color:var(--gray-300)}

.content{max-width:var(--layout-max);width:100%;margin:0 auto;padding:24px}
.pane-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.crumb{font-size:12px;color:var(--gray-500)}
.back-link{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--gray-500);text-decoration:none;margin:2px 0 12px;padding:3px 10px;border:1px solid var(--gray-200);border-radius:999px;background:#fff}
.back-link:hover{border-color:var(--teal);color:var(--teal-dark)}
.proj-sub{font-size:12.5px;color:var(--gray-500);font-weight:500;letter-spacing:.01em;margin:0 0 2px}
.proj-actions{margin-left:auto;display:inline-flex;gap:8px;align-items:center}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:1024px){.grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.grid{grid-template-columns:1fr}}
.empty{text-align:center;color:var(--gray-600);padding:48px}
.empty .btn-primary{margin-top:12px}
.loading{padding:32px;text-align:center;color:var(--gray-500)}

/* card de projeto */
.pcard{background:#fff;border-radius:var(--r-card);box-shadow:var(--sh-card);padding:16px;cursor:pointer;border:1px solid transparent;transition:.12s}
.pcard:hover{border-color:var(--teal);transform:translateY(-1px);box-shadow:var(--sh-pop)}
.pcard-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.pcard-name{font-size:15px;font-weight:600;color:var(--navy)}
.pcard-meta{font-size:12px;color:var(--gray-500);margin-top:6px}

/* chips */
.chip{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:3px 8px;border-radius:999px}
.chip-kind{background:#EEF2F7;color:var(--navy-light)}
.vis-private{background:var(--gray-100);color:var(--gray-500)}
.vis-public{background:#E6F7F7;color:var(--teal-dark)}
.vis-shared{background:#DBEAFE;color:#2563EB}
.chip-pending{background:var(--warn-bg);color:var(--warn)}
.chip-master{background:var(--teal);color:#fff}

/* pending */
.pending-card{max-width:520px;text-align:center;margin:auto}
.pending-icon{font-size:36px;margin-bottom:8px}
.pending-card h2{font-size:20px;color:var(--navy);margin-bottom:10px}
.pending-card p{font-size:13px;color:var(--gray-600);margin-bottom:8px}

/* projeto: cabecalho + abas */
/* zona travada: gruda logo abaixo do topbar (--topbar-h medido em JS); bg cobre o conteudo que sobe por baixo */
.proj-sticky{position:sticky;top:var(--topbar-h,64px);z-index:20;background:var(--gray-100);padding-top:8px}
.proj-head{display:flex;align-items:center;gap:10px;margin:4px 0 2px}
.proj-head h2{font-size:20px;color:var(--navy)}
.tabbar{display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--gray-200);margin-top:10px}
.tabs{display:flex;gap:2px;flex-wrap:wrap}
.tab{background:none;border:none;border-bottom:2px solid transparent;padding:9px 14px;font:500 13px 'Space Grotesk';color:var(--gray-500);cursor:pointer}
.tab:hover{color:var(--navy)}
.tab.on{color:var(--navy);border-bottom-color:var(--teal)}
.tab.dragging{opacity:.4}
.tab.drop-tgt{background:var(--gray-100);border-radius:6px 6px 0 0}
.tab-add{background:none;border:1px dashed var(--gray-300);color:var(--gray-500);border-radius:6px;width:26px;height:26px;cursor:pointer;font-size:16px;line-height:1;margin-left:4px}
.tab-add:hover{border-color:var(--teal);color:var(--teal-dark)}
.proj-content{padding-top:18px}

/* transferin: tabela mestre */
.tf-toolbar{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}
.tf-table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--r-card);overflow:hidden;box-shadow:var(--sh-card);font-size:12px}
.tf-table th{background:var(--gray-50);text-align:left;padding:10px 12px;font-size:10px;text-transform:uppercase;letter-spacing:.03em;color:var(--gray-500);border-bottom:1px solid var(--gray-200)}
.tf-table td{padding:10px 12px;border-bottom:1px solid var(--gray-100);vertical-align:top}
.tf-table td.num{text-align:right;font-variant-numeric:tabular-nums}
.tf-row{cursor:pointer}
.tf-row:hover{background:var(--gray-50)}
.tf-nome{font-size:13px;font-weight:600;color:var(--navy);max-width:320px}
.tf-cnpj{font-size:11px;color:var(--gray-500);margin-top:2px}
.tf-open{color:var(--teal-dark);white-space:nowrap;font-weight:600}
.badge-classe{display:inline-block;background:#E6F7F7;color:var(--teal-dark);font-size:9px;font-weight:700;text-transform:uppercase;padding:1px 6px;border-radius:999px;margin-left:4px;letter-spacing:.03em}
.compl{display:flex;align-items:center;gap:8px;min-width:120px}
.compl-bar{flex:1;height:6px;background:var(--gray-200);border-radius:999px;overflow:hidden}
.compl-bar span{display:block;height:100%}
.compl-bar span.hi{background:var(--pos)} .compl-bar span.md{background:var(--warn)} .compl-bar span.lo{background:var(--neg)}
.compl-pct{font-size:11px;color:var(--gray-600);font-variant-numeric:tabular-nums;width:34px;text-align:right}

/* transferin: detalhe */
.tf-detail-head{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.tf-detail-title h3{font-size:16px;color:var(--navy)}
.tf-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:820px){.tf-cols{grid-template-columns:1fr}}
.tf-col{background:#fff;border-radius:var(--r-card);box-shadow:var(--sh-card);padding:16px}
.tf-col-head{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--gray-500);font-weight:600;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--gray-200)}
.kv{padding:6px 0;border-bottom:1px solid var(--gray-100)}
.kv-label{font-size:11px;color:var(--gray-500);text-transform:uppercase;letter-spacing:.02em}
.kv-val{font-size:13px;color:var(--navy);margin-top:2px}
.kv-fonte{font-size:11px;color:var(--gray-400);margin-left:4px}
.kv.pend .kv-label{display:flex;align-items:center;gap:8px;color:var(--gray-700);text-transform:none;font-size:13px}
.kv.pend .dot{width:12px;height:12px;border:1.5px solid var(--gray-300);border-radius:3px;display:inline-block}

/* modais */
.overlay{position:fixed;inset:0;background:rgba(13,31,76,.4);display:flex;align-items:center;justify-content:center;padding:24px;z-index:50}
.modal{background:#fff;border-radius:var(--r-card);max-width:560px;width:100%;box-shadow:var(--sh-pop)}
.modal-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--gray-200)}
.modal-head strong{font-size:15px;color:var(--navy)}
.modal-head .x{background:none;border:none;font-size:22px;color:var(--gray-400);cursor:pointer;line-height:1}
.modal-body{padding:20px}
.modal-body label{display:block;font-size:11px;text-transform:uppercase;color:var(--gray-500);margin:16px 0 8px}
.modal-body label:first-child{margin-top:0}
.modal-body input{width:100%;border:1px solid var(--gray-300);border-radius:var(--r-ctrl);padding:9px 11px;font:400 13px 'Space Grotesk'}
.modal-body input:focus{outline:none;border-color:var(--teal)}
.modal-body select{width:100%;border:1px solid var(--gray-300);border-radius:var(--r-ctrl);padding:9px 11px;font:400 13px 'Space Grotesk';color:var(--navy);background:#fff;cursor:pointer}
.modal-body select:focus{outline:none;border-color:var(--teal)}
/* compartilhar projeto (B6) */
.sh-add{display:flex;gap:8px;align-items:center;margin-bottom:12px}
.sh-add #sh-who{flex:1}
.sh-add #sh-perm{width:auto;flex-shrink:0}
.sh-add .btn-ghost{flex-shrink:0;white-space:nowrap}
.sh-list{display:flex;flex-direction:column;gap:4px}
.sh-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--gray-100)}
.sh-row:last-child{border-bottom:none}
.sh-grantee{flex:1;font-size:13px;color:var(--navy)}
.sh-perm{background:#EEF2F7;color:var(--navy-light)}
.sh-rm{background:none;border:none;color:var(--neg);font:600 12px 'Space Grotesk';cursor:pointer}
.sh-rm:hover{text-decoration:underline}
.tpl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.tpl-opt{border:1px solid var(--gray-300);background:#fff;border-radius:var(--r-ctrl);padding:10px 8px;font:500 12px 'Space Grotesk';color:var(--navy);cursor:pointer;text-align:center}
.tpl-opt:hover{border-color:var(--teal);background:#E6F7F7}
.tpl-opt.on{border-color:var(--teal);background:#E6F7F7}
.vis-grid{display:flex;gap:10px;flex-wrap:wrap}
.vis-opt{border:1px solid var(--gray-300);background:#fff;border-radius:var(--r-ctrl);padding:8px 10px;cursor:pointer}
.vis-opt.on{border-color:var(--teal);background:var(--gray-50)}
.modal-foot{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:16px 20px;border-top:1px solid var(--gray-200)}
.modal-foot .err{margin-right:auto}

/* transferin: barra de acoes + resumo + filtro + lista */
/* zona travada do Buscador: toolbar + card de overview grudam abaixo do cabecalho do projeto (--stick-h) */
.tf-stick{position:sticky;top:var(--stick-h,120px);z-index:10;background:var(--gray-100);padding:6px 0 14px;margin-top:-6px}
.tf-stick .tf-overview{margin-bottom:0}
.tf-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.seg{display:inline-flex;align-items:stretch}
.seg .btn-primary{border-top-right-radius:0;border-bottom-right-radius:0}
.seg-sel{border:1px solid var(--gray-300);border-left:none;border-radius:0 var(--r-ctrl) var(--r-ctrl) 0;background:#fff;font:500 12px 'Space Grotesk';padding:0 8px;cursor:pointer;color:var(--navy)}
.tf-search{margin-left:auto;border:1px solid var(--gray-300);border-radius:var(--r-ctrl);padding:7px 11px;font:400 13px 'Space Grotesk';min-width:200px}
.tf-search:focus{outline:none;border-color:var(--teal)}
.tf-summary{font-size:13px;color:var(--gray-600);margin-bottom:10px}
.tf-summary strong{color:var(--navy)}
.dotsep{margin-left:6px;padding-left:10px;border-left:1px solid var(--gray-300)}
.dotsep.err{color:var(--neg)}
.tf-filters{display:flex;gap:6px;margin-bottom:14px}
.fchip{background:#fff;border:1px solid var(--gray-300);border-radius:999px;padding:4px 12px;font:500 12px 'Space Grotesk';color:var(--gray-600);cursor:pointer}
.fchip:hover{border-color:var(--teal)}
.fchip.on{background:var(--navy);color:#fff;border-color:var(--navy)}

.tf-list{display:flex;flex-direction:column;gap:8px}
.tf-card{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--gray-200);border-radius:var(--r-card);padding:12px 16px;cursor:pointer;transition:.12s}
.tf-card:hover{border-color:var(--teal);box-shadow:var(--sh-card)}
.tf-card-left{flex:1;min-width:0}
.tf-card-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tf-card-name{font-size:14px;font-weight:600;color:var(--navy)}
.tf-card-sub{font-size:12px;color:var(--gray-500);margin-top:3px}
.tf-card-right{display:flex;align-items:center;gap:16px;flex-shrink:0}
.tf-open{color:var(--teal-dark);font-weight:600;white-space:nowrap;font-size:12px}

.status-chip{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:2px 8px;border-radius:999px}
.status-chip.s-ok{background:var(--pos-bg);color:var(--pos)}
.status-chip.s-pend{background:var(--gray-100);color:var(--gray-500)}
.status-chip.s-run{background:#DBEAFE;color:#2563EB}
.status-chip.s-md{background:var(--warn-bg);color:var(--warn)}
.status-chip.s-err{background:var(--neg-bg);color:var(--neg)}

.doc-row{padding:8px 0;border-bottom:1px solid var(--gray-100);font-size:13px;color:var(--navy)}

/* header estilo MyIB */
.logo-block{display:flex;align-items:center;gap:12px;cursor:pointer}
.logo-img{height:42px;display:block}
.logo-titles{display:flex;flex-direction:column;line-height:1.05}
.logo-h1{font-weight:700;font-size:20px;color:#fff;letter-spacing:-.02em}
.logo-sub{font-size:11px;color:var(--teal)}
.hist{display:flex;gap:6px}
.icon-btn{width:34px;height:34px;border-radius:50%;border:none;background:var(--navy-light);color:#fff;cursor:pointer;font-size:15px;line-height:1;display:inline-flex;align-items:center;justify-content:center}
.icon-btn:disabled{opacity:.4;cursor:not-allowed}
.icon-btn:not(:disabled):hover{background:#1d3a78}
.upd{text-align:right;font-size:11px;color:var(--gray-300);line-height:1.35}
.upd-1 strong{color:#fff}
.avatar-wrap{position:relative}
.avatar{display:inline-flex;align-items:center;gap:7px;background:var(--teal);color:#fff;border:none;border-radius:999px;height:36px;padding:0 13px;cursor:pointer;font:700 13px 'Space Grotesk'}
.avatar:hover{background:var(--teal-dark)}
.avatar .caret{font-size:9px;font-weight:400}
.avatar-menu{position:absolute;right:0;top:44px;background:#fff;border-radius:10px;box-shadow:var(--sh-pop);min-width:210px;padding:12px;z-index:60}
.am-email{font-size:13px;color:var(--navy);font-weight:600;word-break:break-all}
.am-role{font-size:10px;color:var(--gray-500);margin:3px 0 8px;text-transform:uppercase;letter-spacing:.04em}
.am-item{width:100%;text-align:left;background:none;border:none;border-top:1px solid var(--gray-200);padding:9px 2px 2px;font:600 13px 'Space Grotesk';color:var(--neg);cursor:pointer}
.am-item:hover{color:#b91c1c}

/* botao de download por fundo no card */
.tf-dl{background:#EEF2F7;border:1px solid var(--gray-200);color:var(--navy);border-radius:var(--r-ctrl);padding:5px 10px;font:600 11px 'Space Grotesk';cursor:pointer;white-space:nowrap}
.tf-dl:hover{border-color:var(--teal);background:#E6F7F7;color:var(--teal-dark)}
.spin{display:inline-block;width:13px;height:13px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:vxspin .6s linear infinite;vertical-align:middle}
@keyframes vxspin{to{transform:rotate(360deg)}}

/* transferin v2: overview + tiles + anel */
.tf-overview{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:#fff;border:1px solid var(--gray-200);border-radius:var(--r-card);padding:12px 16px;margin-bottom:18px}
.ov-status{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--gray-700)}
.ov-pill{display:inline-flex;align-items:center;gap:6px}
.ov-media{font-weight:600;color:var(--navy)}
.ov-tipos{display:flex;gap:7px;font-size:12px;flex-wrap:wrap;align-items:center}
.ov-flabel{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--gray-400);margin-right:2px}
.ov-right{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.tf-sel-link{background:none;border:none;color:var(--gray-500);font:600 12px 'Space Grotesk';cursor:pointer;padding:5px 8px;border-radius:6px;white-space:nowrap}
.tf-sel-link:hover{color:var(--teal-dark);background:var(--gray-100)}
.tf-sel-link.on{color:var(--neg)}
.tf-sel-link.on:hover{background:var(--neg-bg)}
.ov-tipo{font:inherit;font-size:12px;background:#fff;border:1px solid var(--gray-200);border-radius:999px;padding:3px 10px;cursor:pointer;color:var(--gray-600);display:inline-flex;align-items:center;gap:5px;transition:.12s}
.ov-tipo:hover{border-color:var(--gray-400)}
.ov-tipo b{font-weight:700;color:var(--tc,var(--navy))}
.ov-tipo.on{border-color:var(--tc,var(--navy));background:var(--tc,var(--navy));color:#fff}
.ov-tipo.on b{color:#fff}
.status-dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex-shrink:0}
.status-dot.s-ok{background:var(--pos)} .status-dot.s-md{background:var(--warn)} .status-dot.s-err{background:var(--neg)} .status-dot.s-pend{background:var(--gray-400)} .status-dot.s-run{background:#3B82F6}
.tranche-sec{margin-bottom:4px}
.tranche-band{display:flex;align-items:center;gap:10px;margin:6px 0 12px;cursor:pointer;user-select:none}
.tranche-band .chev{font-size:11px;color:var(--gray-400);transition:transform .12s}
.tranche-band .tb-name{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--navy);white-space:nowrap}
.tranche-band::after{content:"";flex:1;height:1px;background:var(--gray-200);order:2}
.tranche-band .tb-count{font-size:11px;color:var(--gray-400);order:3;white-space:nowrap}
/* progresso da coleta por tranche (barrinha no meio da faixa) */
.tranche-band.has-prog::after{display:none}
.tb-prog{order:2;flex:1;display:flex;align-items:center;gap:8px;min-width:0}
.tb-bar{flex:1;max-width:240px;height:6px;background:var(--gray-200);border-radius:999px;overflow:hidden}
.tb-bar-fill{display:block;height:100%;background:var(--teal);border-radius:999px;transition:width .45s ease}
.tb-prog-txt{font-size:11px;color:var(--gray-500);white-space:nowrap}
.tb-prog-txt.live{color:var(--teal-dark);font-weight:700}
/* banner geral enquanto o motor coleta */
.tf-monitor{display:flex;align-items:center;gap:10px;background:#ECFEFF;border:1px solid var(--teal);border-radius:var(--r-card);padding:10px 14px;margin-bottom:14px;font-size:13px;color:var(--teal-dark)}
.tranche-sec.collapsed .tranche-band .chev{transform:rotate(-90deg)}
.tranche-sec.collapsed .tranche-band{margin-bottom:6px}
.tranche-sec.collapsed .tile-grid{display:none}
.tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;margin-bottom:24px}
.tf-tile{position:relative;background:#fff;border:1px solid var(--gray-200);border-radius:var(--r-card);padding:14px 12px 10px;cursor:pointer;transition:.12s;text-align:center}
.tf-tile:hover{border-color:var(--teal);box-shadow:var(--sh-pop);transform:translateY(-2px)}
.tile-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.tipo-badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:999px;border:1px solid}
.tile-ring{display:flex;justify-content:center;margin:4px 0}
.tile-name{font-size:13px;font-weight:600;color:var(--navy);line-height:1.2;min-height:31px;display:flex;align-items:center;justify-content:center}
.tile-dlg{display:inline-block;margin-top:6px;font:600 11px 'Space Grotesk';background:#fff;border:1px solid var(--gray-200);color:var(--gray-500);cursor:pointer;padding:3px 10px;border-radius:999px}
.tile-dlg:hover{border-color:var(--teal);color:var(--teal-dark)}
.tile-dlg.has{color:var(--teal-dark);border-color:var(--teal);background:#ECFEFF}
.sel-mode .tile-dlg{display:none}
.tile-actions{display:flex;align-items:center;justify-content:space-between;margin-top:8px;opacity:0;transition:.12s;font-size:11px}
.tf-tile:hover .tile-actions{opacity:1}
.ta-left{display:inline-flex;gap:6px;align-items:center}
.sel-bar{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--gray-200);border-radius:var(--r-card);padding:8px 14px;margin-bottom:14px;flex-wrap:wrap}
.sel-bar .sel-count{font-size:13px;font-weight:600;color:var(--navy);margin-right:auto}
.btn-ghost.danger{color:var(--neg)}
.btn-ghost.danger:hover{border-color:var(--neg);color:var(--neg)}
.btn-ghost.danger:disabled{color:var(--gray-400);border-color:var(--gray-200);cursor:default}
.tile-chk{position:absolute;top:8px;left:8px;width:18px;height:18px;border:1.5px solid var(--gray-300);border-radius:5px;background:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff;line-height:1;z-index:2}
.tf-tile.sel-on{border-color:var(--teal);box-shadow:0 0 0 2px var(--teal) inset}
.tf-tile.sel-on .tile-chk{background:var(--teal);border-color:var(--teal)}
.sel-mode .tile-actions{display:none}
/* fundo tombado (dossie situacao='tombado' na Comissao): card apagado + selo verde, reversivel */
.tf-tile.tombado{opacity:.6}
.tf-tile.tombado:hover{opacity:1}
.tile-tombado{position:absolute;top:8px;left:8px;background:var(--pos);color:#fff;font:700 9px 'Space Grotesk';text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:999px;z-index:2}
.edit-bar{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--teal);border-radius:var(--r-card);padding:8px 14px;margin-bottom:14px;flex-wrap:wrap}
.edit-bar .edit-hint{font-size:13px;color:var(--navy);margin-right:auto}
.edit-bar .sel-count{font-size:13px;color:var(--gray-600);font-weight:600}
.edit-mode .tile-actions,.edit-mode .tile-dlg{display:none}
.edit-mode .tf-tile{cursor:grab;border-style:dashed}
.edit-mode .tf-tile:hover{border-color:var(--teal)}
.edit-mode .tf-tile.dragging{cursor:grabbing}
.tf-tile[draggable="true"]{cursor:grab}
.tf-tile.dragging{opacity:.45;cursor:grabbing}
.tranche-sec.drag-over .tile-grid{outline:2px dashed var(--teal);outline-offset:4px;border-radius:8px;min-height:46px}
.tranche-sec.drag-over .tb-name{color:var(--teal-dark)}
.tile-dl{background:#EEF2F7;border:1px solid var(--gray-200);color:var(--navy);border-radius:6px;padding:3px 7px;font:600 10px 'Space Grotesk';cursor:pointer}
.tile-dl:hover{border-color:var(--teal);color:var(--teal-dark)}
.tile-del{background:#fff;border:1px solid var(--gray-200);color:var(--gray-500);border-radius:6px;padding:3px 6px;font-size:11px;line-height:1;cursor:pointer}
.tile-del:hover{border-color:var(--neg);color:var(--neg)}
.tile-open{color:var(--teal-dark);font-weight:600}
.det-actions{display:flex;gap:6px;margin-right:10px}
.fund-form label{display:block;font-size:12px;font-weight:600;color:var(--navy);margin:10px 0 4px}
.fund-form input,.fund-form select{width:100%;padding:8px 10px;border:1px solid var(--gray-300);border-radius:var(--r-ctrl);font:inherit;font-size:13px;color:var(--navy);background:#fff}
.fund-form input:disabled{background:var(--gray-100);color:var(--gray-500)}
.fund-form .ff-hint{font-size:11px;color:var(--gray-500);margin:5px 0 2px}
.fund-form .req{color:var(--neg)}
.fund-form .ff-tr{display:flex;gap:8px}
.fund-form .ff-tr select{flex:1}
.fund-form .ff-tr input{width:90px}
.fund-form .err{color:var(--neg);font-size:12px;margin-top:10px}
.ring{display:block}
.ring-bg{fill:none;stroke:var(--gray-200);stroke-width:6}
.ring-fg{fill:none;stroke-width:6;stroke-linecap:round}
.ring-fg.hi{stroke:var(--pos)} .ring-fg.md{stroke:var(--warn)} .ring-fg.lo{stroke:var(--neg)}
.ring-txt{fill:var(--navy);font:700 15px 'Space Grotesk';text-anchor:middle}

/* detalhe v2: ficha + abas */
.det-head{display:flex;align-items:center;gap:16px;margin-bottom:16px}
.det-title{flex:1}
.det-title h3{font-size:18px;color:var(--navy)}
.det-sub{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--gray-600);margin-top:3px}
.det-ring{flex-shrink:0}
.ficha{background:#fff;border:1px solid var(--gray-200);border-radius:var(--r-card);padding:14px 18px;display:grid;grid-template-columns:1fr 1fr;gap:2px 28px;margin-bottom:18px}
@media(max-width:680px){.ficha{grid-template-columns:1fr}}
.fc{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--gray-100)}
.fc-k{font-size:12px;color:var(--gray-500)}
.fc-v{font-size:13px;color:var(--navy);font-weight:500;text-align:right}
.det-tabs{display:flex;gap:4px;border-bottom:1px solid var(--gray-200);margin-bottom:16px;flex-wrap:wrap;align-items:center}
.det-tab{background:none;border:none;border-bottom:2px solid transparent;padding:8px 14px;font:600 13px 'Space Grotesk';color:var(--gray-500);cursor:pointer}
.det-tab.on{color:var(--navy);border-bottom-color:var(--teal)}
/* "Foco no fundo": sub-abas do fundo grudam abaixo do topbar; nome do fundo na barra */
.det-tabs-fund{font:700 12px 'Space Grotesk';text-transform:uppercase;letter-spacing:.04em;color:var(--navy);margin-right:8px;white-space:nowrap}
.det-tabs.det-sticky{position:sticky;top:var(--topbar-h,64px);z-index:15;background:var(--gray-100);margin:0 -24px 16px;padding:8px 24px 0;border-bottom:1px solid var(--gray-200)}
/* em foco, o cabecalho do PROJETO (nome+abas) deixa de ser sticky e rola pra cima */
#pane-project.detail-focus .proj-sticky{position:static}
.tema-group{margin-bottom:16px}
.tema-h{display:flex;align-items:center;gap:10px;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--navy);margin-bottom:8px;cursor:pointer;user-select:none}
.tema-h .chev{font-size:10px;color:var(--gray-400);transition:transform .12s}
.tema-h::after{content:"";flex:1;height:1px;background:var(--gray-200);order:2}
.tema-h .tema-n{order:3;font-weight:700;color:var(--gray-400);white-space:nowrap}
.tema-group.collapsed .tema-h{margin-bottom:0}
.tema-group.collapsed .tema-h .chev{transform:rotate(-90deg)}
.tema-group.collapsed .tema-body{display:none}
.pub-bar{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-bottom:12px}
.pub-head{display:grid;grid-template-columns:minmax(128px,1.2fr) minmax(150px,1.5fr) 70px 84px 92px minmax(58px,100px);gap:12px;padding:4px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-400);border-bottom:1px solid var(--gray-200);margin-bottom:4px}
.pub-head span:last-child{text-align:right}
.pub-row{display:grid;grid-template-columns:minmax(128px,1.2fr) minmax(150px,1.5fr) 70px 84px 92px minmax(58px,100px);gap:12px;align-items:baseline;padding:5px 4px;font-size:13px;border-radius:6px}
.pub-rec{color:var(--gray-500);font-size:12px;text-transform:capitalize}
.pub-row:hover{background:#F8FAFC}
.pub-k{color:var(--gray-600)}
.pub-v{color:var(--navy);font-weight:500;word-break:break-word}
.pub-data{color:var(--gray-500);font-size:12px}
.pub-per{color:var(--gray-400);font-size:11px}
.pub-status .pst{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;white-space:nowrap}
.pst-ok{background:var(--pos-bg);color:var(--pos)}
.pst-late{background:var(--neg-bg);color:var(--neg)}
/* botao de status (override manual do pre-status) + popover */
.pst-btn{font:600 11px 'Space Grotesk';padding:2px 9px;border-radius:999px;border:1px solid transparent;cursor:pointer;white-space:nowrap}
.pst-btn.pst-ok{background:var(--pos-bg);color:var(--pos)}
.pst-btn.pst-late{background:var(--neg-bg);color:var(--neg)}
.pst-btn.pst-na{background:var(--gray-100);color:var(--gray-500)}
.pst-btn.pst-none{background:none;color:var(--gray-400);border-color:var(--gray-200)}
.pst-btn:hover{filter:brightness(.97);border-color:var(--gray-300)}
.pst-btn.manual{box-shadow:0 0 0 1.5px var(--navy) inset}
.rev-pop{position:fixed;z-index:90;background:#fff;border:1px solid var(--gray-200);border-radius:var(--r-ctrl);box-shadow:var(--sh-pop);padding:4px;display:flex;flex-direction:column;min-width:175px}
.rev-opt{text-align:left;background:none;border:none;padding:7px 10px;border-radius:6px;font:500 12.5px 'Space Grotesk';color:var(--navy);cursor:pointer}
.rev-opt:hover{background:var(--gray-50)}
.rev-opt.on{background:var(--gray-100);font-weight:700}
/* selo de confianca do campo (media=autodeclarado/estimado, baixa) + link p/ documento */
.cf{display:inline-block;font:700 9px 'Space Grotesk';text-transform:uppercase;letter-spacing:.03em;padding:1px 6px;border-radius:999px;margin-left:4px;vertical-align:middle;white-space:nowrap}
.cf-media{background:var(--warn-bg);color:var(--warn)}
.cf-baixa{background:var(--neg-bg);color:var(--neg)}
.pub-doc-link{background:none;border:none;color:var(--teal-dark);font:600 12px 'Space Grotesk';cursor:pointer;padding:0;text-decoration:underline}
.pub-doc-link:hover{color:var(--teal)}
/* reconciliacao publico x gestora (M3) */
.pub-div-count{color:var(--neg);font-weight:700}
.pub-row-div,.pub-row-div:hover{background:var(--neg-bg)}
.pub-row-div .pub-k{color:var(--neg)}
.pub-gestora{font-size:11px;color:var(--gray-500);margin-top:2px}
.pub-gestora.div{color:var(--neg);font-weight:600}
.pub-head-conf,.pub-row-conf{grid-template-columns:minmax(140px,1.3fr) minmax(120px,1.4fr) minmax(120px,1.4fr) 104px}
.pub-g-input{width:100%;border:1px solid var(--gray-300);border-radius:var(--r-ctrl);padding:5px 8px;font:400 13px 'Space Grotesk';color:var(--navy)}
.pub-g-input:focus{outline:none;border-color:var(--teal)}
@media(max-width:720px){.pub-head-conf{display:none}.pub-row-conf{grid-template-columns:1fr 1fr}}

/* cobertura do portfolio (pilulas extras no overview) */
.ov-pill.ov-warn{background:var(--warn-bg);color:var(--warn)}
.ov-pill.ov-neg{background:var(--neg-bg);color:var(--neg)}

/* aba Historico (execucao.resumo por coleta) */
.hist-list{display:flex;flex-direction:column;gap:8px}
.hist-item{background:#fff;border:1px solid var(--gray-200);border-radius:var(--r-card);box-shadow:var(--sh-card);padding:11px 14px}
.hist-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.hist-when{font:600 13px 'Space Grotesk';color:var(--navy)}
.hist-st{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--gray-500);font-weight:700}
.hist-compl{margin-left:auto;font:700 13px 'Space Grotesk';color:var(--navy)}
.hist-delta{font-size:11px;font-weight:700}
.hist-delta.up{color:var(--pos)} .hist-delta.down{color:var(--neg)}
.hist-via{font-size:11px}
.hist-meta{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:7px;font-size:12px;color:var(--gray-600)}
.hist-c b{color:var(--navy)}
.hist-sanc{color:var(--neg);font-weight:600}
.hist-falhas{margin-top:7px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.chip.hist-falha{background:var(--warn-bg);color:var(--warn)}
.hist-erro{margin-top:7px;background:var(--neg-bg);color:var(--neg);border-radius:var(--r-ctrl);padding:6px 10px;font-size:12px}
.pub-src{text-align:right;font-size:11px}
.src-link{color:var(--teal-dark);text-decoration:none;border-bottom:1px dotted var(--teal)}
.src-link:hover{color:var(--teal);border-bottom-style:solid}
.src-txt{color:var(--gray-400)}
@media(max-width:720px){.pub-head{display:none}.pub-row{grid-template-columns:1fr 1fr;gap:3px 10px}.pub-src{text-align:left}}
.kv2{display:flex;justify-content:space-between;gap:16px;padding:5px 0;font-size:13px}
.kv2-l{color:var(--gray-600)}
.kv2-v{color:var(--navy);text-align:right;font-weight:500}
.kv-fonte{font-size:11px;color:var(--gray-400);font-weight:400}
.doc-list{display:flex;flex-direction:column;gap:8px}
.doc-item{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid var(--gray-200);border-radius:var(--r-ctrl);padding:10px 14px;font-size:13px}
.pend-item{display:flex;align-items:center;gap:9px;padding:6px 0;font-size:13px;color:var(--gray-700)}
.pend-box{width:13px;height:13px;border:1.5px solid var(--gray-300);border-radius:3px;flex-shrink:0}

/* aba Contrapartes / Prestadores (KYC: RFB + socios + sancoes) */
.cp-tab-alert{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;margin-left:5px;background:var(--neg);color:#fff;font-size:10px;font-weight:800;border-radius:50%;line-height:1}
.cp-sanc-count{color:var(--neg);font-weight:700}
.cp-list{display:flex;flex-direction:column;gap:10px}
.cp-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--r-card);box-shadow:var(--sh-card);padding:12px 16px}
.cp-card.has-sanc{border-color:var(--neg);box-shadow:0 0 0 1px var(--neg) inset}
.cp-card-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cp-papel{font:700 9px 'Space Grotesk';text-transform:uppercase;letter-spacing:.04em;background:#EEF2F7;color:var(--navy-light);padding:2px 8px;border-radius:999px}
.cp-razao{font-size:14px;font-weight:600;color:var(--navy)}
.cp-rfb{font:600 10px 'Space Grotesk';text-transform:uppercase;letter-spacing:.03em;padding:2px 8px;border-radius:999px}
.cp-rfb-ok{background:var(--pos-bg);color:var(--pos)} .cp-rfb-bad{background:var(--neg-bg);color:var(--neg)} .cp-rfb-neu{background:var(--gray-100);color:var(--gray-500)}
.cp-sanc-badge{font:700 10px 'Space Grotesk';text-transform:uppercase;letter-spacing:.03em;padding:2px 8px;border-radius:999px;background:var(--warn-bg);color:var(--warn)}
.cp-sanc-badge.ativa{background:var(--neg);color:#fff}
.cp-meta{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:8px;font-size:12px;color:var(--gray-600)}
.cp-meta-k{color:var(--gray-400);font-size:10px;text-transform:uppercase;letter-spacing:.03em;margin-right:3px}
.cp-sanc-list{margin-top:10px;display:flex;flex-direction:column;gap:5px}
.cp-sanc-row{display:flex;gap:10px;flex-wrap:wrap;align-items:baseline;background:var(--neg-bg);border-radius:var(--r-ctrl);padding:6px 10px;font-size:12px}
.cp-sanc-row .cp-sanc-fonte{font-weight:700;color:var(--neg)}
.cp-sanc-row .cp-sanc-desc{color:var(--navy);flex:1;min-width:120px}
.cp-sanc-row .cp-sanc-per{color:var(--gray-500)}
.cp-qsa-wrap{margin-top:10px;border-top:1px solid var(--gray-100);padding-top:8px}
.cp-qsa-toggle{background:none;border:none;color:var(--gray-500);font:600 11px 'Space Grotesk';cursor:pointer;padding:2px 0}
.cp-qsa-toggle:hover{color:var(--teal-dark)}
.cp-qsa-toggle .chev{display:inline-block;transition:transform .12s}
.cp-qsa-toggle.open .chev{transform:rotate(180deg)}
.cp-qsa{margin-top:6px;display:flex;flex-direction:column;gap:4px}
.cp-qsa-row{display:flex;gap:10px;flex-wrap:wrap;align-items:baseline;font-size:12.5px;padding:3px 0;border-bottom:1px solid var(--gray-100)}
.cp-qsa-row:last-child{border-bottom:none}
.cp-qsa-nome{font-weight:600;color:var(--navy)}
.cp-qsa-qual{color:var(--gray-600)}
.cp-qsa-misc{font-size:11px}

/* areas > subareas > projetos */
.area-block{margin-bottom:30px}
.area-block-head{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid var(--gray-200);padding-bottom:8px;margin-bottom:16px}
.ab-name{font-size:18px;font-weight:700;color:var(--navy)}
.sections-row{display:flex;gap:16px;align-items:flex-start;overflow-x:auto;padding-bottom:8px}
.section{flex:0 0 320px;max-width:340px;background:#fff;border:1px solid var(--gray-200);border-radius:var(--r-card);padding:14px}
.section .grid{grid-template-columns:1fr;gap:10px}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.section-name{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--gray-500)}
.btn-link{background:none;border:none;color:var(--teal-dark);font:600 12px 'Space Grotesk';cursor:pointer;padding:0}
.btn-link:hover{text-decoration:underline}

/* popup baixar documentos */
.dc-choice{display:flex;gap:10px}
.check-all{display:block;font-weight:600;color:var(--navy);padding:6px 2px;border-bottom:1px solid var(--gray-200);margin-bottom:10px;cursor:pointer}
.fund-checks{max-height:300px;overflow:auto;display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.fund-check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--navy);cursor:pointer}

/* visao geral (dashboard do projeto, modulo dashboard.js) */
.ovw-head{display:flex;align-items:baseline;gap:12px;margin-bottom:18px;flex-wrap:wrap}
.ovw-head h2{font-size:20px;color:var(--navy)}
.ovw-block{margin-bottom:24px}
.ovw-block-h{font:700 12px 'Space Grotesk';text-transform:uppercase;letter-spacing:.05em;color:var(--gray-500);margin-bottom:10px}
.ovw-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:12px}
.ovw-kpi{display:flex;flex-direction:column;gap:2px;background:#fff;border:1px solid var(--gray-200);border-left-width:3px;border-radius:var(--r-card);box-shadow:var(--sh-card);padding:14px}
.ovw-kpi-n{font:700 22px 'Space Grotesk';color:var(--navy);line-height:1}
.ovw-kpi-l{font-size:11.5px;color:var(--gray-500);font-weight:600}
.ovw-kpi.k-neg{border-left-color:var(--neg)} .ovw-kpi.k-neg .ovw-kpi-n{color:var(--neg)}
.ovw-kpi.k-warn{border-left-color:var(--warn)} .ovw-kpi.k-warn .ovw-kpi-n{color:var(--warn)}
.ovw-kpi.k-teal{border-left-color:var(--teal)} .ovw-kpi.k-teal .ovw-kpi-n{color:var(--teal-dark)}
.ovw-kpi.k-navy{border-left-color:var(--navy)}
.ovw-kpi.k-gray{border-left-color:var(--gray-300)} .ovw-kpi.k-gray .ovw-kpi-n{color:var(--gray-500)}
.ovw-note{margin-top:10px;font-size:12px;color:var(--gray-600);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ovw-alerts{display:flex;flex-direction:column;gap:8px}
.ovw-alert{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:#fff;border:1px solid var(--gray-200);border-left-width:3px;border-radius:var(--r-card);box-shadow:var(--sh-card);padding:10px 14px;cursor:pointer;font:inherit}
.ovw-alert[data-pid]:hover{border-color:var(--teal);box-shadow:var(--sh-pop)}
.ovw-alert:not([data-pid]){cursor:default}
.ovw-alert.sev-neg{border-left-color:var(--neg)}
.ovw-alert.sev-warn{border-left-color:var(--warn)}
.ovw-alert-tag{font:700 10px 'Space Grotesk';text-transform:uppercase;letter-spacing:.03em;padding:2px 8px;border-radius:999px;white-space:nowrap}
.sev-neg .ovw-alert-tag{background:var(--neg-bg);color:var(--neg)}
.sev-warn .ovw-alert-tag{background:var(--warn-bg);color:var(--warn)}
.ovw-alert-txt{flex:1;font-size:13px;color:var(--navy);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ovw-alert-ctx{font-size:12px;color:var(--gray-500);white-space:nowrap}
.ovw-alert-go{font-size:11px;color:var(--gray-400);font-weight:600;white-space:nowrap}
.ovw-alert[data-pid]:hover .ovw-alert-go{color:var(--teal-dark)}
.ovw-ok{background:var(--pos-bg);color:var(--pos);border-radius:var(--r-card);padding:14px 16px;font-weight:600}
.ovw-sub{font:700 11px 'Space Grotesk';text-transform:uppercase;letter-spacing:.04em;color:var(--gray-500);margin:14px 0 8px}
.ovw-prazos{display:flex;flex-direction:column;gap:6px}
.ovw-prazo{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:#fff;border:1px solid var(--gray-200);border-radius:var(--r-ctrl);padding:8px 12px;cursor:pointer;font:inherit}
.ovw-prazo:hover{border-color:var(--teal)}
.ovw-prazo-fundo{font:700 11px 'Space Grotesk';text-transform:uppercase;color:var(--navy);white-space:nowrap}
.ovw-prazo-desc{flex:1;font-size:13px;color:var(--navy);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* timer (compartilhado: dashboard modulo reusa; diligencia.css tambem define) */
.dlg-timer{font-weight:600;font-size:12px;white-space:nowrap}
.dlg-timer.atrasado{color:var(--neg)} .dlg-timer.hoje{color:var(--warn)} .dlg-timer.ok{color:var(--pos)} .dlg-timer.muted{color:var(--gray-400)}

/* ============ Multiusuario v2: cadastro, console, papel ============ */
.banner-ok{background:var(--pos-bg);color:#075E45;border:1px solid #A7F3D0;border-radius:var(--r-ctrl);padding:10px 12px;font-size:13px;margin-bottom:10px}
.auth-switch{margin-top:14px;text-align:center;font-size:13px;color:var(--gray-500)}
.auth-switch a{color:var(--navy);font-weight:600;margin-left:6px;text-decoration:none}
.auth-switch a:hover{text-decoration:underline}
.login-card select{width:100%;border:1px solid var(--gray-300);border-radius:var(--r-ctrl);padding:9px 11px;font:400 13px 'Space Grotesk';background:#fff;cursor:pointer}
.login-card select:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 2px rgba(0,180,180,.25)}
.chip-blocked{background:var(--neg-bg);color:#991B1B}
.chip-ro{background:var(--gray-200);color:var(--gray-600)}
/* botao Console do Master no topbar */
.tb-console{display:inline-flex;align-items:center;gap:6px;height:34px;background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:var(--r-ctrl);padding:0 12px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}
.tb-console:hover{background:rgba(255,255,255,.22)}
.console-title{color:#fff;font-weight:600;font-size:15px;margin-left:6px}
#view-console .content{max-width:var(--layout-max);margin:0 auto;padding:20px 24px}

/* ============ Visão geral v2 (redesenho) ============ */
.ovw2-top{display:flex;align-items:baseline;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.ovw2-top h2{font-size:20px;color:var(--navy)}
.ovw2-sub-t{font-size:12.5px;color:var(--gray-500)}
.ovw2-hero{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}
@media(max-width:900px){.ovw2-hero{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.ovw2-hero{grid-template-columns:1fr}}
.ovw2-hcard{background:#fff;border-radius:var(--r-card);box-shadow:var(--sh-card);padding:16px 18px;border-left:3px solid var(--gray-300);display:flex;flex-direction:column;gap:2px}
.ovw2-hcard.k-navy{border-left-color:var(--navy)} .ovw2-hcard.k-teal{border-left-color:var(--teal)} .ovw2-hcard.k-warn{border-left-color:var(--warn)} .ovw2-hcard.k-neg{border-left-color:var(--neg)} .ovw2-hcard.k-gray{border-left-color:var(--gray-300)}
.ovw2-hn{font:700 34px 'Space Grotesk';color:var(--navy);line-height:1.05}
.ovw2-hcard.k-neg .ovw2-hn{color:var(--neg)}
.ovw2-hl{font-size:12px;font-weight:600;color:var(--gray-600);text-transform:uppercase;letter-spacing:.03em}
.ovw2-hc{font-size:12px;color:var(--gray-500);display:flex;align-items:center;gap:7px;margin-top:5px;flex-wrap:wrap}
.ovw2-seg{display:inline-flex;width:62px;height:7px;border-radius:4px;overflow:hidden;background:var(--gray-100);flex:0 0 auto}
.ovw2-seg-i{display:block}
.seg-ok{background:var(--teal)} .seg-parcial{background:var(--warn)} .seg-pend{background:var(--gray-300)} .seg-erro{background:var(--neg)}
.ovw2-card{background:#fff;border-radius:var(--r-card);box-shadow:var(--sh-card);padding:16px 18px;margin-bottom:16px}
.ovw2-card-h{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--gray-500);margin-bottom:12px;display:flex;align-items:center;gap:8px}
.ovw2-count{background:var(--neg);color:#fff;border-radius:999px;font-size:11px;padding:1px 8px;font-weight:700}
.ovw2-2col{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:760px){.ovw2-2col{grid-template-columns:1fr}}
.ovw2-fila{display:flex;flex-direction:column;gap:6px}
.ovw2-alert{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:var(--gray-50);border:1px solid var(--gray-200);border-left:3px solid var(--gray-300);border-radius:var(--r-ctrl);padding:9px 12px;cursor:pointer;font:inherit;transition:.12s}
.ovw2-alert:hover{border-color:var(--teal);background:#fff}
.ovw2-alert.sev-neg{border-left-color:var(--neg)} .ovw2-alert.sev-warn{border-left-color:var(--warn)}
.ovw2-alert-tag{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;white-space:nowrap}
.ovw2-alert.sev-neg .ovw2-alert-tag{background:var(--neg-bg);color:var(--neg)} .ovw2-alert.sev-warn .ovw2-alert-tag{background:var(--warn-bg);color:var(--warn)}
.ovw2-alert-txt{font-size:13px;color:var(--gray-800);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ovw2-alert-ctx{font-size:12px;color:var(--gray-500);white-space:nowrap}
.ovw2-go{font-size:12px;color:var(--teal-dark);font-weight:600;white-space:nowrap}
.ovw2-more{font-size:12px;color:var(--gray-500);padding:4px 2px}
.ovw2-ok{font-size:13px;color:#075E45;background:var(--pos-bg);border-radius:var(--r-ctrl);padding:10px 12px}
.ovw2-tr{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:none;padding:6px 2px;cursor:pointer;font:inherit}
.ovw2-tr:hover .ovw2-tr-lbl{color:var(--navy)}
.ovw2-tr-lbl{font-size:12.5px;font-weight:600;color:var(--gray-600);flex:0 0 88px}
.ovw2-tr-bar{flex:1;height:8px;background:var(--gray-100);border-radius:4px;overflow:hidden}
.ovw2-tr-fill{display:block;height:100%;background:var(--teal);border-radius:4px}
.ovw2-tr-meta{font-size:12px;color:var(--gray-500);flex:0 0 86px;text-align:right}
.ovw2-health{font-size:13px;color:var(--gray-700);margin-bottom:8px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ovw2-health-ok{font-size:13px;color:var(--gray-600)}
.ovw2-health-err{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:var(--neg-bg);color:var(--neg);border:none;border-radius:var(--r-ctrl);padding:9px 12px;cursor:pointer;font:600 13px 'Space Grotesk';margin-top:6px}
.ovw2-health-err .ovw2-go{margin-left:auto;color:var(--neg)}
.ovw2-funnel{display:flex;align-items:stretch;gap:8px}
.ovw2-stage{flex:1;border:none;border-radius:var(--r-ctrl);padding:14px 12px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;color:#fff;font:inherit}
.ovw2-stage-n{font:700 26px 'Space Grotesk';line-height:1}
.ovw2-stage-l{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.02em;opacity:.95}
.ovw2-stage.st-0{background:var(--gray-400)} .ovw2-stage.st-1{background:#3f9bb0} .ovw2-stage.st-2{background:var(--teal)}
.ovw2-stage:hover{filter:brightness(1.06)}
.ovw2-arrow{align-self:center;color:var(--gray-300);font-size:18px}
.ovw2-side{font-size:12px;color:var(--gray-500);margin-top:8px}
.ovw2-sub{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--gray-500);margin:14px 0 6px}
.ovw2-prazos{display:flex;flex-direction:column;gap:6px}

/* ============ Onda 3: barra do Buscador (hierarquia) + filtros + affordances ============ */
.tf-grp{display:inline-flex;align-items:center;gap:8px}
.tf-grp-primary{padding-left:12px;margin-left:4px;border-left:1px solid var(--gray-300)}
.tf-grp-end{margin-left:auto}
.tf-grp .seg-sel{height:34px}
.tf-grp-primary .btn-primary{display:inline-flex;align-items:center;gap:6px;border-top-right-radius:0;border-bottom-right-radius:0}
.tf-grp-primary .seg-sel{border-radius:0 var(--r-ctrl) var(--r-ctrl) 0;border-left:none}
.ov-right .tf-search{margin-left:0;min-width:190px}
.ov-right{gap:12px}
/* pre-status: deixar claro que e clicavel (override manual) */
.pst-btn{cursor:pointer}
.pst-btn:hover{filter:brightness(.96);box-shadow:0 0 0 1px rgba(13,31,76,.12) inset}

/* ============ Onda 4: acessibilidade, icones, dialogos do DS, toast ============ */
/* foco de teclado visivel (acessibilidade) */
:focus-visible{outline:2px solid var(--teal);outline-offset:2px;border-radius:3px}
.pcard:focus-visible,.tf-tile:focus-visible,.dlg-item:focus-visible{outline-offset:-2px}
/* icones inline em botoes/chips */
.ic{vertical-align:middle}
.ic-btn{display:inline-flex;align-items:center;gap:6px}
.chip-ro{display:inline-flex;align-items:center;gap:5px}
/* modal pequeno (prompt/confirm) */
.modal-sm{max-width:420px}
.cm-msg{font-size:13.5px;color:var(--gray-700);line-height:1.5}
.modal-foot .btn-primary.danger{background:var(--neg)}
.modal-foot .btn-primary.danger:hover{filter:brightness(1.05)}
.modal-sm .modal-body input{width:100%;border:1px solid var(--gray-300);border-radius:var(--r-ctrl);padding:9px 11px;font:400 13px 'Space Grotesk'}
.modal-sm .modal-body input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 2px rgba(0,180,180,.25)}
/* toast nao-bloqueante */
.vx-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,12px);background:var(--navy);color:#fff;padding:11px 18px;border-radius:var(--r-ctrl);box-shadow:var(--sh-pop);font:500 13px 'Space Grotesk';z-index:80;opacity:0;transition:opacity .25s,transform .25s;max-width:90vw}
.vx-toast.show{opacity:1;transform:translate(-50%,0)}

/* Coletar dados: botao unico que abre menu com "so os novos" / "atualizar tudo" */
.tf-collect{position:relative}
.tf-collect .btn-primary{border-radius:var(--r-ctrl);display:inline-flex;align-items:center;gap:7px}
.tf-caret{font-size:10px;opacity:.85}
.tf-collect-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:25;background:#fff;border:1px solid var(--gray-200);border-radius:var(--r-ctrl);box-shadow:var(--sh-pop);min-width:232px;padding:6px;display:flex;flex-direction:column;gap:2px}
.tf-collect-menu.hidden{display:none}
.tf-collect-opt{display:flex;flex-direction:column;align-items:flex-start;gap:1px;text-align:left;background:none;border:none;border-radius:6px;padding:8px 10px;cursor:pointer;font:inherit;color:var(--navy);width:100%}
.tf-collect-opt:hover{background:var(--gray-100)}
.tf-collect-opt strong{font:600 13px 'Space Grotesk'}

/* Visao geral -> Buscador: atalho de "saude da coleta" (navega, nao duplica a acao) + pulse no Coletar */
.ovw2-health-go{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--r-ctrl);padding:9px 12px;cursor:pointer;font:600 13px 'Space Grotesk';color:var(--navy);margin-top:6px}
.ovw2-health-go:hover{border-color:var(--teal);background:#fff}
.ovw2-health-go .ovw2-go{margin-left:auto;color:var(--teal-dark)}
.ovw2-health-err{cursor:pointer}
#tf-buscar.pulse{animation:tfpulse 1.1s ease-out 2;box-shadow:0 0 0 0 rgba(0,180,180,.55)}
@keyframes tfpulse{0%{box-shadow:0 0 0 0 rgba(0,180,180,.55)}70%{box-shadow:0 0 0 10px rgba(0,180,180,0)}100%{box-shadow:0 0 0 0 rgba(0,180,180,0)}}

/* Buscador: pílula de "fonte instável" clicável (mostra o nome inline + filtra os fundos afetados) */
.ov-falha-btn{cursor:pointer;border:1px solid transparent;font:inherit;color:inherit;transition:.12s}
.ov-falha-btn:hover{filter:brightness(.95)}
.ov-falha-btn.on{outline:2px solid currentColor;outline-offset:1px;font-weight:700}

/* Documentos: pendente (a pedir a gestora) + seção + histórico de versões */
.doc-sec{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--gray-500);margin:14px 0 6px}
.doc-item.doc-pend{background:var(--gray-50);border:1px dashed var(--gray-300);border-radius:var(--r-ctrl);padding:8px 10px}
.doc-pend-tag{font-size:11px;font-weight:600;color:var(--warn);background:var(--warn-bg);border-radius:999px;padding:3px 10px;white-space:nowrap}
.doc-tab-pend{background:var(--warn-bg);color:var(--warn)}
.doc-hist{margin-top:14px;border-top:1px solid var(--gray-200);padding-top:8px}
.doc-hist-toggle{background:none;border:none;color:var(--gray-500);font:600 12px 'Space Grotesk';cursor:pointer;padding:4px 0;display:inline-flex;align-items:center;gap:6px}
.doc-hist-toggle:hover{color:var(--teal-dark)}
.doc-hist-toggle .chev{transition:transform .12s}
.doc-hist-toggle.open .chev{transform:rotate(180deg)}
.doc-hist-body .doc-item{opacity:.85}

.hist-pend{color:var(--warn);font-weight:600}

/* Documentos: ponteiro para a aba Pendencias (nao duplica a lista de pendentes) */
.doc-pend-note{display:block;width:100%;text-align:left;margin-top:12px;background:var(--warn-bg);border:1px solid #FCD34D;border-radius:var(--r-ctrl);padding:9px 12px;color:#92660A;font:600 12.5px 'Space Grotesk';cursor:pointer}
.doc-pend-note:hover{filter:brightness(.98)}

/* Organizar: botao "master" por tranche (seleciona a tranche inteira) */
.tb-sel{width:18px;height:18px;flex:0 0 18px;border:1.5px solid var(--gray-300);border-radius:5px;background:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:12px;color:#fff;line-height:1;padding:0}
.tb-sel:hover{border-color:var(--teal)}
.tb-sel.on{background:var(--teal);border-color:var(--teal)}
/* arraste de varios em "stack" (estilo Apple) */
.drag-stack{position:fixed;top:-2000px;left:-2000px;width:96px;height:72px;pointer-events:none}
.drag-stack .ds-card{position:absolute;width:64px;height:56px;border-radius:10px;background:#fff;border:1px solid var(--gray-300);box-shadow:var(--sh-card)}
.drag-stack .ds-c1{left:16px;top:10px}
.drag-stack .ds-c2{left:9px;top:14px;transform:rotate(-5deg)}
.drag-stack .ds-c3{left:23px;top:14px;transform:rotate(5deg)}
.drag-stack .ds-badge{position:absolute;left:0;top:0;min-width:22px;height:22px;border-radius:999px;background:var(--teal);color:#fff;font:700 12px 'Space Grotesk';display:inline-flex;align-items:center;justify-content:center;padding:0 6px;z-index:3;box-shadow:var(--sh-pop)}
.tf-tile.dragging{opacity:.5;transform:scale(.97)}

/* Coletar dados > Selecionar fundos: modal organizado por tranche */
.modal-coletar{max-width:560px}
.modal-coletar .modal-body{max-height:60vh;overflow:auto}
.cs-allall{display:flex;align-items:center;gap:8px;font:600 13px 'Space Grotesk';color:var(--navy);padding:4px 0 10px;border-bottom:1px solid var(--gray-200);margin-bottom:10px}
.cs-tranches{display:flex;flex-direction:column;gap:14px}
.cs-tr-h{display:flex;align-items:center;gap:8px;font:700 12px 'Space Grotesk';text-transform:uppercase;letter-spacing:.05em;color:var(--navy);cursor:pointer}
.cs-funds{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px;margin:6px 0 0 4px}
@media(max-width:520px){.cs-funds{grid-template-columns:1fr}}
.cs-fund{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--gray-700);cursor:pointer;padding:3px 0;min-width:0}
.cs-fund-nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cs-fund input,.cs-tr-all,#cs-allall{cursor:pointer;flex:0 0 auto}

/* FIX: checkboxes do modal Coletar nao podem herdar o width:100% de .modal-body input */
.modal-coletar input[type="checkbox"]{width:16px;height:16px;flex:0 0 16px;min-width:16px;padding:0;margin:0;border:1px solid var(--gray-400);border-radius:4px;cursor:pointer}
.modal-coletar .cs-allall{flex-wrap:wrap}

/* FIX 2 (definitivo): lista de fundos do modal Coletar = 1 coluna, linha flex, checkbox nativo limpo */
.modal-coletar .cs-funds{display:block;margin:4px 0 0 2px}
.modal-coletar .cs-fund{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px;color:var(--gray-700);cursor:pointer}
.modal-coletar .cs-fund .cs-fund-nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.modal-coletar .cs-tr-h{display:flex;align-items:center;gap:8px}
.modal-coletar .cs-allall{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}
.modal-coletar input[type="checkbox"]{appearance:auto;-webkit-appearance:checkbox;width:16px;height:16px;flex:0 0 16px;min-width:16px;margin:0;padding:0;border:none;border-radius:0;accent-color:var(--teal);cursor:pointer;vertical-align:middle}
.modal-coletar .status-dot{flex:0 0 auto}
