:root{
  --bg:#f3f6fb;
  --bg-soft:#f8faff;
  --surface:#ffffff;
  --surface-2:#f7f9fc;
  --surface-3:#eef3f9;
  --text:#172033;
  --text-strong:#0f172a;
  --muted:#6d7890;
  --muted-2:#98a2b5;
  --line:#e4eaf2;
  --line-strong:#d8e0eb;
  --primary:#18366f;
  --primary-2:#2858bb;
  --primary-3:#5e7ee7;
  --sidebar:#0d1730;
  --sidebar-2:#142344;
  --green:#23865c;
  --yellow:#c18d16;
  --orange:#bd5a1f;
  --red:#be3434;
  --shadow-sm:0 8px 24px rgba(23,32,51,.055);
  --shadow:0 18px 52px rgba(24,36,64,.11);
  --shadow-lg:0 34px 90px rgba(13,23,48,.22);
  --radius:18px;
}

*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
a{color:inherit}
svg{width:1em;height:1em;display:block;fill:currentColor}
[hidden]{display:none!important}

/* ===== Estrutura principal ===== */
.app-body{
  min-height:100vh;
  overflow-x:hidden;
  background:
    radial-gradient(circle at 85% -10%,rgba(67,101,196,.09),transparent 30%),
    linear-gradient(180deg,#f7f9fc 0,#f2f5fa 48%,#f4f6fa 100%);
}
.workspace{
  min-height:100vh;
  padding:28px 30px 48px 34px;
  transition:padding .28s ease;
}

.topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin-bottom:22px;
  padding:4px 2px;
}
.topbar-copy-wrap{display:flex;align-items:center;gap:12px;min-width:0}
.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:9px;font-weight:900;color:#7d8ba4}
.topbar h1{margin:4px 0 1px;font-size:27px;line-height:1.08;letter-spacing:-.035em;color:var(--text-strong)}
.page-subtitle{margin:5px 0 0;color:var(--muted);font-size:11.5px}
.top-actions{display:flex;gap:9px;align-items:center;flex-shrink:0}
.menu-toggle{
  display:none;
  width:38px;height:38px;border:1px solid var(--line);border-radius:12px;background:#fff;color:#273957;
  align-items:center;justify-content:center;box-shadow:var(--shadow-sm)
}
.menu-toggle svg{width:19px;height:19px}

.searchbox{
  height:42px;min-width:260px;display:flex;align-items:center;gap:9px;
  background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:12px;padding:0 12px;
  box-shadow:0 5px 18px rgba(26,39,69,.035);transition:.18s ease;
}
.searchbox:focus-within{border-color:#9bb0df;box-shadow:0 0 0 4px rgba(40,88,187,.07)}
.searchbox input{border:0;outline:0;width:100%;min-width:0;background:transparent;color:var(--text)}
.searchbox input::placeholder{color:#9aa5b6}
.search-icon{color:#73809a;display:grid;place-items:center}
.search-icon svg{width:15px;height:15px}

.btn{
  border:0;border-radius:11px;padding:10px 14px;font-weight:800;font-size:12px;
  display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none;white-space:nowrap;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease;
}
.btn:hover{transform:translateY(-1px)}
.btn.primary{background:linear-gradient(135deg,var(--primary),#244d99);color:#fff;box-shadow:0 9px 20px rgba(24,54,111,.2)}
.btn.primary:hover{box-shadow:0 12px 28px rgba(24,54,111,.28)}
.btn.soft{background:rgba(255,255,255,.96);color:var(--text);border:1px solid var(--line);box-shadow:0 5px 16px rgba(25,38,67,.035)}
.btn.soft:hover{border-color:#cfd8e6;background:#fff}
.btn.danger{background:#fff4f4;color:#9f2f2f;border:1px solid #f0cccc}
.btn.small{padding:7px 9px;font-size:10.5px;border-radius:9px}
.btn.full{width:100%}
.btn-symbol{font-size:14px;line-height:1}

.content-heading{
  display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:10px;padding:0 2px;
}
.content-heading>div:first-child{display:grid;gap:2px}
.content-heading strong{font-size:12.5px;color:#303b50}
.content-heading small{font-size:10px;color:var(--muted)}
.drop-tip{display:flex;align-items:center;gap:7px;color:#8994a7;font-size:9.5px}
.drop-tip>span{width:6px;height:6px;border-radius:999px;background:#4c6fca;box-shadow:0 0 0 4px rgba(76,111,202,.08)}

/* ===== Menu lateral fixo (V2) ===== */
.edge-sidebar{
  position:fixed;z-index:71;left:-286px;top:0;bottom:0;width:286px;
  background:linear-gradient(180deg,var(--sidebar) 0,#101d39 62%,#0c162c 100%);color:#fff;
  display:flex;flex-direction:column;padding:0;
  transition:left .28s cubic-bezier(.2,.8,.2,1);box-shadow:18px 0 52px rgba(8,15,31,.22);
  border-right:1px solid rgba(255,255,255,.05);
}
.edge-sidebar.open{left:0}
.sidebar-scroll{flex:1;overflow-y:auto;overflow-x:hidden;padding:18px 14px 12px;scrollbar-width:thin;scrollbar-color:#2c3d63 transparent}
.sidebar-backdrop{position:fixed;inset:0;z-index:70;background:rgba(10,18,38,.5);backdrop-filter:blur(3px)}
@media(min-width:1024px){
  .edge-sidebar{left:0}
  .workspace{margin-left:286px}
  .sidebar-backdrop{display:none!important}
}
.sidebar-brand{display:flex;align-items:center;gap:11px;font-weight:900;letter-spacing:.08em;padding:4px 6px 22px}
.sidebar-brand-copy{display:grid;gap:2px;min-width:0}
.sidebar-brand-copy strong{font-size:13px;letter-spacing:.12em}
.sidebar-brand-copy small{font-size:9px;font-weight:600;letter-spacing:.02em;color:#8390aa}
.brand-mark{width:70px;height:70px;border-radius:21px;background:linear-gradient(145deg,#263a66,#4d6ec5);color:#fff;display:grid;place-items:center;font-size:37px;font-weight:900;box-shadow:0 20px 50px rgba(38,58,102,.22)}
.brand-mark.sm{width:34px;height:34px;border-radius:10px;font-size:16px;box-shadow:0 8px 20px rgba(69,99,182,.24)}
.edge-sidebar nav{display:grid;gap:5px}
.edge-sidebar nav button{
  border:1px solid transparent;background:transparent;color:#aeb9cc;border-radius:11px;padding:10px 10px;
  display:flex;align-items:center;gap:11px;text-align:left;min-height:42px;transition:.16s ease;
}
.edge-sidebar nav button:hover{background:rgba(255,255,255,.055);color:#fff;border-color:rgba(255,255,255,.04)}
.edge-sidebar nav button.active{background:linear-gradient(90deg,rgba(80,111,200,.28),rgba(61,89,165,.1));color:#fff;border-color:rgba(139,163,230,.12)}
.nav-icon{width:20px;height:20px;display:grid;place-items:center;flex:0 0 20px;color:#8fa2cc}
.nav-icon svg{width:17px;height:17px}
.edge-sidebar nav button.active .nav-icon{color:#b9c8f4}
.edge-sidebar nav button b{font-size:11.5px;font-weight:750;letter-spacing:.01em}
.nav-badge{
  margin-left:auto;background:#d94f55;color:#fff;border-radius:999px;min-width:18px;height:18px;padding:0 5px;
  display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-style:normal;font-weight:900;
  box-shadow:0 5px 14px rgba(217,79,85,.3)
}
.nav-badge[hidden],.nav-badge:empty{display:none!important}
.sidebar-bottom{
  flex-shrink:0;display:flex;align-items:center;justify-content:space-between;
  border-top:1px solid rgba(255,255,255,.08);padding:14px;gap:10px;
}
.user-mini{display:flex;align-items:center;gap:9px;min-width:0}
.user-mini>span{width:32px;height:32px;border-radius:10px;background:#263a61;display:grid;place-items:center;font-weight:900;font-size:11px;color:#dce6ff;flex:0 0 32px}
.user-mini div{display:grid;min-width:0}
.user-mini strong{font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}
.user-mini small{font-size:8.5px;color:#8896af}
.logout-link{font-size:9px;color:#9daac0;text-decoration:none;padding:6px 7px;border-radius:7px}
.logout-link:hover{background:rgba(255,255,255,.06);color:#fff}

/* ===== Views ===== */
.view{display:none}
.view.active{display:block;animation:fadeUp .22s ease}

/* Até 10 cards por linha. auto-fit foi removido de propósito para 1 card não crescer até 100%. */
.municipality-grid{
  display:grid;
  grid-template-columns:repeat(10,minmax(0,1fr));
  gap:10px;
  align-items:start;
}
.municipality-card{
  position:relative;min-width:0;min-height:166px;
  background:linear-gradient(180deg,#fff 0,#fbfcfe 100%);border:1px solid var(--line);border-radius:15px;
  padding:11px 11px 10px;box-shadow:0 7px 20px rgba(30,43,73,.045);overflow:hidden;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;background .18s ease;
  isolation:isolate;
}
.municipality-card::before{
  content:"";position:absolute;z-index:-1;left:0;right:0;top:0;height:2px;
  background:linear-gradient(90deg,#234c99,#6b83d6);opacity:.75;
}
.municipality-card::after{
  content:"";position:absolute;z-index:-2;width:72px;height:72px;border-radius:50%;right:-34px;top:-40px;
  background:rgba(65,99,185,.07);transition:transform .2s ease;
}
.municipality-card:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(30,43,73,.1);border-color:#d5deeb;background:#fff}
.municipality-card:hover::after{transform:scale(1.2)}
.municipality-card.drag-over{outline:2px dashed #5274c9;outline-offset:2px;background:#f5f8ff;border-color:#aec0ed}
.municipality-card .head{display:flex;justify-content:space-between;gap:7px;align-items:flex-start;min-width:0}
.city-ident{display:flex;gap:8px;align-items:flex-start;min-width:0;flex:1}
.city-avatar{
  width:28px;height:28px;border-radius:9px;display:grid;place-items:center;flex:0 0 28px;
  background:linear-gradient(145deg,#e9effc,#dce6fb);color:#244783;font-size:10px;font-weight:900;border:1px solid #d6e0f2;
}
.city-copy{min-width:0;flex:1}
.municipality-card h3{
  margin:1px 0 0;font-size:12.5px;line-height:1.2;letter-spacing:-.015em;color:#172033;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.municipality-card .meta{margin-top:3px;font-size:8.7px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.status-indicator{width:7px;height:7px;border-radius:50%;background:#96a1b1;flex:0 0 7px;margin-top:5px;box-shadow:0 0 0 3px rgba(150,161,177,.09)}
.status-indicator.active{background:#2e9a6b;box-shadow:0 0 0 3px rgba(46,154,107,.1)}

.card-values{display:grid;gap:7px;margin-top:12px}
.metric{min-width:0;background:transparent;border-radius:0;padding:0}
.metric small{display:block;color:#8a95a8;font-size:7.8px;font-weight:700;text-transform:uppercase;letter-spacing:.045em;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.metric strong{display:block;font-size:11px;line-height:1.22;color:#1a2941;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.metric.primary-metric strong{font-size:12px;color:#18366f}
.card-divider{height:1px;background:#edf1f6;margin:1px 0 0}
.card-foot{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:8px;padding-top:7px;border-top:1px solid #edf1f6}
.competence-chip,.contract-count{
  display:inline-flex;align-items:center;min-width:0;border-radius:8px;font-size:8.4px;font-weight:800;color:#5f6e86;background:#f1f4f8;padding:4px 6px;
  white-space:nowrap;
}
.contract-count{color:#36558e;background:#eef3fc;max-width:75px;overflow:hidden;text-overflow:ellipsis}
.card-open-hint{position:absolute;left:10px;right:10px;bottom:-22px;text-align:center;font-size:7px;color:#9aa5b6;opacity:0;transition:.18s ease;pointer-events:none}
.municipality-card:hover .card-open-hint{bottom:2px;opacity:1}
.pill{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:900;background:#eef2f7;color:#5d687a}
.pill.active{background:#e8f6ef;color:#26714d}
.pill.pending{background:#fff6df;color:#8d691e}
.empty-state{grid-column:1/-1;background:rgba(255,255,255,.7);border:1px dashed #d4ddea;border-radius:16px;padding:42px;text-align:center;color:var(--muted);font-size:12px}

/* ===== Login ===== */
.login-body{min-height:100vh;background:radial-gradient(circle at 15% 15%,#edf1fb 0,transparent 38%),linear-gradient(135deg,#f8fafc,#eef2f8);display:grid;place-items:center}
.login-shell{width:min(920px,92vw);display:grid;grid-template-columns:1fr 460px;align-items:center;gap:80px}
.login-shell.compact{grid-template-columns:minmax(0,500px);justify-content:center}
.login-brand{display:flex;align-items:center;gap:16px;font-size:34px;font-weight:900;letter-spacing:.08em;color:#263a66}
.login-card{background:rgba(255,255,255,.92);backdrop-filter:blur(14px);border:1px solid rgba(225,230,239,.9);border-radius:26px;padding:34px;box-shadow:0 32px 80px rgba(35,46,76,.14)}
.login-card h1{margin:7px 0 8px;font-size:34px}
.login-card p{color:var(--muted);margin:0 0 22px}
.login-foot{text-align:center;font-size:11px;color:#99a2b1;margin-top:18px}
.login-card .btn.soft{margin-top:10px}
.text-link{display:inline-block;margin-top:16px;color:#4a5f8e;text-decoration:none;font-weight:700}
.alert{padding:12px 14px;border-radius:12px;margin:12px 0;font-size:14px}
.alert.error{background:#fff0f0;color:#9d2e2e}.alert.success{background:#eaf8f0;color:#17643e}
.stack{display:grid;gap:14px}
.stack label,.form-grid label{display:grid;gap:6px;font-size:11px;font-weight:800;color:#465269}
.stack label small,.form-grid label small{font-weight:600;color:#9aa4b4;font-size:9px}
.stack input,.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:1px solid #dce3ed;border-radius:10px;padding:10px 11px;background:#fff;color:var(--text);outline:none;transition:.16s ease}
.form-grid textarea{min-height:92px;resize:vertical}
.stack input:focus,.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:#91a7da;box-shadow:0 0 0 4px rgba(52,83,165,.07)}

/* ===== Modais / drawers / detalhes ===== */
.modal-layer,.drawer-layer,.detail-layer{position:fixed;inset:0}
/* Hierarquia de overlays: detalhe < drawer < modal. Evita que o drawer borre/bloqueie formulários abertos sobre ele. */
.detail-layer{z-index:90}
.drawer-layer{z-index:110}
.modal-layer{z-index:140}
.modal-backdrop,.drawer-backdrop{position:absolute;inset:0;background:rgba(13,23,48,.42);backdrop-filter:blur(5px)}
.modal{position:relative;z-index:2;width:min(760px,92vw);max-height:88vh;overflow:auto;margin:6vh auto;background:#fff;border:1px solid rgba(255,255,255,.7);border-radius:20px;box-shadow:var(--shadow-lg);animation:modalIn .22s ease}
.modal.wide{width:min(1100px,94vw)}
.modal-head{position:sticky;top:0;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);z-index:4;padding:17px 19px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;align-items:center}
.modal-head h2{margin:0;font-size:19px;letter-spacing:-.02em}
.icon-btn{border:1px solid var(--line);width:34px;height:34px;border-radius:10px;background:#fff;color:#68758b;display:grid;place-items:center}
.icon-btn:hover{background:#f5f7fa;color:#1f2d46}
.modal-body{padding:19px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.form-grid .full{grid-column:1/-1}
.form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:9px;border-top:1px solid var(--line);padding-top:14px;margin-top:2px}
.drawer-layer{pointer-events:none;z-index:110}
.drawer-backdrop{pointer-events:none}
.drawer{pointer-events:auto;position:absolute;right:0;top:0;bottom:0;width:min(540px,94vw);background:#fff;box-shadow:-20px 0 70px rgba(20,30,53,.2);animation:drawerIn .26s ease;overflow:auto;border-left:1px solid var(--line)}
.drawer-head{position:sticky;top:0;background:rgba(255,255,255,.95);backdrop-filter:blur(14px);z-index:3;padding:18px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}
.drawer-body{padding:16px}

/* ===== Painel de trabalho de contratos =====
   Neste modo não existe blur nem bloqueio do conteúdo. O workspace reserva a área
   ocupada pelo drawer para que nenhum card de município fique escondido atrás dele. */
:root{--contract-drawer-width:520px}
body.drawer-workspace-open .workspace{
  padding-right:calc(var(--contract-drawer-width) + 30px);
}
.drawer-layer.workspace-mode{pointer-events:none;background:transparent}
.drawer-layer.workspace-mode .drawer-backdrop{display:none!important;backdrop-filter:none!important;background:transparent!important}
.drawer-layer.workspace-mode .drawer{
  width:var(--contract-drawer-width);
  box-shadow:-14px 0 42px rgba(20,30,53,.13);
  border-left:1px solid #dde5f0;
}
body.drawer-workspace-open .municipality-grid{
  grid-template-columns:repeat(auto-fill,minmax(128px,1fr));
}
body.drawer-workspace-open .content-heading,
body.drawer-workspace-open .topbar{max-width:100%}
body.drawer-workspace-open .municipality-card{min-width:0}
.detail-layer{background:#f4f7fb;z-index:90;animation:detailIn .29s cubic-bezier(.2,.8,.2,1)}
.detail-panel{height:100%;overflow:auto}
.detail-top{position:sticky;top:0;z-index:5;background:rgba(244,247,251,.92);backdrop-filter:blur(14px);border-bottom:1px solid rgba(224,229,238,.9);padding:17px 28px;display:flex;align-items:center;justify-content:space-between}
.detail-content{padding:24px 28px 46px}
.detail-hero{background:linear-gradient(135deg,#13223f,#294b86);color:#fff;border-radius:21px;padding:24px;display:flex;justify-content:space-between;gap:20px;align-items:flex-end;box-shadow:0 18px 46px rgba(31,48,84,.18);overflow:hidden;position:relative}
.detail-hero::after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;right:-110px;top:-150px;background:rgba(255,255,255,.06)}
.detail-hero h2{margin:5px 0 4px;font-size:27px;letter-spacing:-.025em}
.detail-hero p{margin:0;color:#d4def0;font-size:11px}
.detail-hero .hero-stat{text-align:right;position:relative;z-index:1}
.detail-hero .hero-stat strong{font-size:25px;display:block}
.section-title{margin:24px 0 12px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.section-title h3{margin:0;font-size:15px;color:#26334a}

/* ===== Contratos e profissionais ===== */
.contract-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:13px}
.contract-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:15px;position:relative;transition:.18s ease;overflow:hidden}
.contract-card:hover{box-shadow:0 13px 31px rgba(32,44,73,.08);transform:translateY(-2px);border-color:#d6deea}
.contract-card.drag-over{outline:2px dashed #4b67b1;background:#f7f9ff}
.contract-card::before{content:"";position:absolute;left:0;top:13px;bottom:13px;width:3px;border-radius:0 4px 4px 0;background:#73a582}
.contract-card.exp90::before{background:var(--yellow)}
.contract-card.exp30::before{background:var(--orange)}
.contract-card.exp7::before,.contract-card.expired::before{background:var(--red)}
.contract-card h4{margin:0 0 5px;font-size:14px}
.contract-card .muted,.muted{font-size:10px;color:var(--muted)}
.contract-card .contract-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}
.expiry{font-size:9.5px;font-weight:900;padding:5px 7px;border-radius:8px;background:#eef5f0;color:#28704c}
.exp90 .expiry{background:#fff6de;color:#936918}.exp30 .expiry{background:#fff0e5;color:#a64f21}.exp7 .expiry,.expired .expiry{background:#ffebeb;color:#a92f2f}
.contract-card .bottom{display:flex;justify-content:space-between;align-items:center;margin-top:13px}
.contract-card[draggable="true"],.professional-item[draggable="true"]{cursor:grab}.contract-card[draggable="true"]:active,.professional-item[draggable="true"]:active{cursor:grabbing}
.list-toolbar{display:flex;gap:9px;margin-bottom:12px}
.list-toolbar .searchbox{flex:1;min-width:0}
.list{display:grid;gap:8px}
.list-item{border:1px solid var(--line);background:#fff;border-radius:12px;padding:11px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;transition:.14s ease}
.list-item:hover{border-color:#d1dbe9;background:#fcfdff}
.list-item .info{min-width:0}
.list-item .info strong{display:block;font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.list-item .info small{color:var(--muted);font-size:9.5px}
.list-item .actions{display:flex;gap:6px;flex-shrink:0}
.professional-item{border:1px solid var(--line);border-radius:12px;padding:11px;margin-bottom:8px;background:#fff}
.professional-item strong{font-size:11.5px}.professional-item small{display:block;color:var(--muted);font-size:9.5px;margin-top:3px}
.drag-hint{font-size:9.5px;color:#748198;background:#f3f6fa;border:1px solid #e7ecf3;border-radius:9px;padding:8px 10px;margin-bottom:11px}

/* ===== Dashboard, tabelas e permissões ===== */
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.kpi{display:flex;flex-direction:column;justify-content:space-between;gap:4px;min-width:0;min-height:88px;
  background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px 16px;
  box-shadow:0 7px 22px rgba(27,39,68,.035)}
/* O rótulo ocupa no máximo duas linhas, para todos os cartões ficarem da mesma altura */
.kpi small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  min-height:24px;font-size:9.5px;line-height:1.25;color:var(--muted);text-transform:uppercase;
  letter-spacing:.04em;font-weight:750}
/* O valor encolhe sozinho quando é longo, em vez de estourar o cartão */
.kpi strong{display:block;margin-top:2px;font-size:clamp(12px,var(--kpi-fs,23px),23px);line-height:1.15;
  letter-spacing:-.03em;color:#182841;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  font-variant-numeric:tabular-nums}
.panel{margin-top:16px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:0 7px 22px rgba(27,39,68,.03)}
.panel h3{margin:0 0 12px;font-size:14px}
.table-wrap{overflow:auto;border-radius:10px}
.data-table{width:100%;border-collapse:collapse;font-size:10.5px}
.data-table th{text-align:left;font-size:8.5px;text-transform:uppercase;letter-spacing:.065em;color:#7b8698;padding:9px;border-bottom:1px solid var(--line);background:#fafbfd}
.data-table td{padding:10px 9px;border-bottom:1px solid #eef1f5;vertical-align:middle}
.data-table tr.clickable:hover td{background:#f7f9fc;cursor:pointer}
.status-dot{display:inline-flex;align-items:center;gap:6px}.status-dot::before{content:"";width:6px;height:6px;border-radius:50%;background:#9ca6b4}.status-dot.Prestado::before{background:#2f9367}.status-dot.Pendente::before{background:#ca8f20}.status-dot.Conferencia::before{background:#4c69b2}
.permission-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.permission-item{display:flex;align-items:center;gap:8px;background:#f7f9fc;border:1px solid #e9edf3;border-radius:9px;padding:8px 9px;font-size:10px}.permission-item input{accent-color:#314f99}
.role-select{padding:7px 9px;border:1px solid #dce1ea;border-radius:9px;background:#fff}

.toast{position:fixed;z-index:200;right:20px;bottom:20px;max-width:360px;background:#172033;color:#fff;border-radius:11px;padding:11px 14px;box-shadow:0 18px 45px rgba(17,26,44,.24);opacity:0;pointer-events:none;transform:translateY(12px);transition:.2s;font-size:11px}.toast.show{opacity:1;transform:none}.toast.error{background:#9f3030}

@keyframes fadeUp{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@keyframes modalIn{from{opacity:0;transform:translateY(13px) scale(.985)}to{opacity:1;transform:none}}
@keyframes drawerIn{from{transform:translateX(100%)}to{transform:none}}
@keyframes detailIn{from{opacity:0;transform:translateY(17px)}to{opacity:1;transform:none}}

/* ===== Grade responsiva dos municípios ===== */
@media(max-width:1550px){.municipality-grid{grid-template-columns:repeat(8,minmax(0,1fr))}}
@media(max-width:1320px){.municipality-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:1100px){.municipality-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:900px){
  .municipality-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .login-shell{grid-template-columns:1fr;gap:24px}.login-brand{justify-content:center}
  .workspace{padding:20px 16px 36px}
  .topbar{align-items:stretch;flex-direction:column;gap:14px}
  .top-actions{flex-wrap:wrap}.searchbox{min-width:210px;flex:1}
  .kpi-grid{grid-template-columns:1fr 1fr}
  .detail-top,.detail-content{padding-left:17px;padding-right:17px}
  .detail-hero{align-items:flex-start;flex-direction:column}.detail-hero .hero-stat{text-align:left}
  .form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.permission-grid{grid-template-columns:1fr}
}
@media(max-width:1023px){
  .menu-toggle{display:inline-flex}
}
@media(max-width:700px){
  .municipality-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .content-heading{align-items:flex-start}.drop-tip{display:none}
}
@media(max-width:520px){
  .municipality-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .municipality-card{min-height:160px}
  .top-actions .btn{flex:1}.searchbox{flex-basis:100%}
  .login-card{padding:25px}.login-brand{display:none}
  .kpi-grid{grid-template-columns:1fr}.contract-grid{grid-template-columns:1fr}
  .page-subtitle{display:none}
}
@media(max-width:360px){.municipality-grid{grid-template-columns:1fr}}


@media(max-width:1200px) and (min-width:901px){
  :root{--contract-drawer-width:430px}
  body.drawer-workspace-open .workspace{padding-right:calc(var(--contract-drawer-width) + 22px)}
  body.drawer-workspace-open .municipality-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr))}
}
@media(max-width:900px) and (min-width:701px){
  :root{--contract-drawer-width:370px}
  body.drawer-workspace-open .workspace{padding-right:calc(var(--contract-drawer-width) + 16px)}
  body.drawer-workspace-open .municipality-grid{grid-template-columns:repeat(auto-fill,minmax(128px,1fr))}
}
@media(max-width:700px){
  body.drawer-workspace-open .workspace{padding-right:16px;padding-bottom:min(49vh,450px)}
  .drawer-layer.workspace-mode .drawer{
    left:0;right:0;top:auto;bottom:0;width:100%;height:min(46vh,420px);
    border-left:0;border-top:1px solid #dce4ef;border-radius:18px 18px 0 0;
    box-shadow:0 -18px 46px rgba(20,30,53,.14);animation:workspaceDrawerMobileIn .24s ease;
  }
  .drawer-layer.workspace-mode .drawer-head{padding:13px 16px}
  .drawer-layer.workspace-mode .drawer-body{padding:12px 14px 18px}
  body.drawer-workspace-open .municipality-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:420px){
  body.drawer-workspace-open .municipality-grid{grid-template-columns:1fr}
}
@keyframes workspaceDrawerMobileIn{from{transform:translateY(100%)}to{transform:none}}

@media print{
  .edge-sidebar,.sidebar-sensor,.sidebar-backdrop,.contracts-rail,.topbar,.content-heading,.no-print,.btn{display:none!important}
  .workspace{margin-left:0!important}
  .workspace{padding:0}.panel{border:0;padding:0;box-shadow:none}.app-body{background:#fff}.view{display:none!important}#view-reports.active{display:block!important}
}

/* ======================================================================
   AEMPRO V1.8 — LOGIN CINEMATOGRÁFICO / FUTURISTA
   Escopo isolado em .login-premium para não alterar Solicitar Acesso.
   ====================================================================== */
.login-body.login-premium{
  --login-navy:#071426;
  --login-navy-2:#0b1e36;
  --login-panel:#0a1a2e;
  --login-cyan:#11cce6;
  --login-blue:#1778d4;
  --login-text:#ecf7ff;
  --login-muted:#8fa5ba;
  min-height:100vh;
  display:block;
  margin:0;
  overflow:hidden;
  background:
    radial-gradient(circle at 82% 15%,rgba(17,204,230,.10),transparent 26%),
    radial-gradient(circle at 8% 88%,rgba(23,120,212,.12),transparent 28%),
    linear-gradient(135deg,#06101e 0%,#071426 48%,#0a1830 100%);
  color:var(--login-text);
}

.premium-login-shell{
  position:relative;
  width:100%;
  min-height:100vh;
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(410px,.72fr);
  gap:0;
  isolation:isolate;
}
.premium-login-shell::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:10;
  background:linear-gradient(90deg,transparent 0 58%,rgba(8,23,42,.16) 69%,transparent 100%);
}

.login-media-panel{
  position:relative;
  min-width:0;
  min-height:100vh;
  margin:20px 0 20px 20px;
  border-radius:28px 0 0 28px;
  overflow:hidden;
  border:1px solid rgba(134,208,255,.16);
  border-right:0;
  box-shadow:
    0 34px 90px rgba(0,0,0,.34),
    inset 0 0 0 1px rgba(255,255,255,.025);
  background:#07111e;
}
.login-media-panel::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:4;
  pointer-events:none;
  box-shadow:inset 0 0 80px rgba(3,10,22,.48);
}
.login-media-panel::after{
  content:"";
  position:absolute;
  right:0;
  top:12%;
  bottom:12%;
  width:1px;
  z-index:7;
  background:linear-gradient(transparent,rgba(17,204,230,.55),rgba(23,120,212,.45),transparent);
  box-shadow:0 0 22px rgba(17,204,230,.25);
}
.login-video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:saturate(.92) contrast(1.04) brightness(.78);
  transform:scale(1.015);
}
.login-video-overlay{
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(180deg,rgba(3,10,20,.32) 0%,rgba(3,12,24,.05) 34%,rgba(4,13,25,.25) 58%,rgba(3,10,20,.88) 100%),
    linear-gradient(90deg,rgba(5,14,26,.40) 0%,rgba(4,13,24,.04) 50%,rgba(5,17,31,.46) 100%);
}
.login-video-grid{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  opacity:.16;
  background-image:
    linear-gradient(rgba(117,214,255,.14) 1px,transparent 1px),
    linear-gradient(90deg,rgba(117,214,255,.14) 1px,transparent 1px);
  background-size:54px 54px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.65),transparent 62%);
}

.login-media-top{
  position:absolute;
  z-index:6;
  top:28px;
  left:30px;
  display:flex;
  align-items:flex-start;
}
.login-logo{
  display:block;
  width:clamp(170px,13vw,230px);
  height:auto;
  max-height:205px;
  object-fit:contain;
  object-position:left top;
  filter:drop-shadow(0 12px 26px rgba(0,0,0,.35));
}

.login-media-copy{
  position:absolute;
  left:clamp(28px,4.2vw,68px);
  bottom:clamp(68px,9vh,110px);
  z-index:6;
  width:min(720px,80%);
}
.login-kicker{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin-bottom:16px;
  color:#cfefff;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:10px;
  font-weight:900;
}
.login-kicker i{
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--login-cyan);
  box-shadow:0 0 0 5px rgba(17,204,230,.12),0 0 18px rgba(17,204,230,.75);
}
.login-media-copy h2{
  margin:0;
  max-width:690px;
  color:#fff;
  font-size:clamp(28px,3.05vw,52px);
  line-height:1.04;
  letter-spacing:-.045em;
  text-shadow:0 10px 36px rgba(0,0,0,.36);
}
.login-media-copy p{
  max-width:610px;
  margin:18px 0 0;
  color:rgba(222,239,251,.76);
  font-size:clamp(12px,1.08vw,16px);
  line-height:1.65;
}
.login-features{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:23px;
}
.login-features span{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:32px;
  padding:0 12px;
  border:1px solid rgba(180,224,255,.14);
  border-radius:999px;
  background:rgba(5,19,34,.42);
  backdrop-filter:blur(9px);
  color:#d8edfa;
  font-size:10px;
  font-weight:750;
  box-shadow:inset 0 1px rgba(255,255,255,.04);
}
.login-features b{
  width:5px;
  height:5px;
  border-radius:50%;
  background:#2fd8ef;
  box-shadow:0 0 10px rgba(47,216,239,.75);
}
.login-media-status{
  position:absolute;
  z-index:6;
  right:25px;
  bottom:22px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 11px;
  border:1px solid rgba(178,220,247,.10);
  border-radius:10px;
  color:rgba(211,230,243,.65);
  background:rgba(4,15,27,.42);
  backdrop-filter:blur(10px);
  font-size:9px;
  letter-spacing:.02em;
}
.status-pulse{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#2ed7ae;
  box-shadow:0 0 0 4px rgba(46,215,174,.10),0 0 13px rgba(46,215,174,.55);
}

.login-auth-panel{
  position:relative;
  z-index:12;
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:42px clamp(28px,3vw,54px);
  background:
    linear-gradient(180deg,rgba(7,20,38,.94),rgba(6,18,34,.98)),
    radial-gradient(circle at 50% 20%,rgba(17,204,230,.10),transparent 36%);
  border-left:1px solid rgba(130,199,238,.08);
}
.login-auth-panel::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.12;
  background-image:linear-gradient(rgba(81,180,224,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(81,180,224,.10) 1px,transparent 1px);
  background-size:42px 42px;
  mask-image:radial-gradient(circle at center,black,transparent 72%);
}
.login-auth-glow{
  position:absolute;
  width:340px;
  height:340px;
  border-radius:50%;
  top:12%;
  left:50%;
  transform:translateX(-50%);
  background:rgba(17,204,230,.055);
  filter:blur(60px);
  pointer-events:none;
}
.login-auth-card{
  position:relative;
  z-index:2;
  width:min(100%,430px);
  padding:32px;
  border-radius:26px;
  background:
    linear-gradient(145deg,rgba(14,35,58,.84),rgba(8,25,44,.88));
  border:1px solid rgba(144,205,241,.14);
  box-shadow:
    0 28px 80px rgba(0,0,0,.30),
    inset 0 1px rgba(255,255,255,.045),
    inset 0 0 0 1px rgba(0,0,0,.12);
  backdrop-filter:blur(22px);
  overflow:hidden;
}
.login-auth-card::before{
  content:"";
  position:absolute;
  left:28px;
  right:28px;
  top:0;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(29,210,236,.75),rgba(55,121,218,.55),transparent);
  box-shadow:0 0 22px rgba(17,204,230,.26);
}
.login-auth-card::after{
  content:"";
  position:absolute;
  width:150px;
  height:150px;
  border-radius:50%;
  right:-90px;
  top:-72px;
  background:radial-gradient(circle,rgba(25,195,226,.16),transparent 68%);
  pointer-events:none;
}
.login-auth-heading{
  display:flex;
  align-items:flex-start;
  gap:14px;
  margin-bottom:26px;
}
.login-auth-icon{
  flex:0 0 42px;
  width:42px;
  height:42px;
  border-radius:13px;
  display:grid;
  place-items:center;
  color:#54d9ef;
  background:linear-gradient(145deg,rgba(17,204,230,.13),rgba(23,120,212,.11));
  border:1px solid rgba(80,211,235,.16);
  box-shadow:inset 0 1px rgba(255,255,255,.05),0 10px 30px rgba(4,12,24,.18);
}
.login-auth-icon svg{width:19px;height:19px}
.login-auth-eyebrow{
  display:block;
  margin:1px 0 5px;
  color:#55cce6;
  text-transform:uppercase;
  letter-spacing:.15em;
  font-size:8.5px;
  font-weight:900;
}
.login-auth-heading h1{
  margin:0;
  color:#fff;
  font-size:30px;
  line-height:1.08;
  letter-spacing:-.035em;
}
.login-auth-heading p{
  margin:7px 0 0;
  color:#8ca1b6;
  font-size:12px;
}

.login-form{display:grid;gap:17px}
.login-field{display:grid;gap:7px;color:#b9c9d7;font-size:10px;font-weight:800;letter-spacing:.015em}
.login-input-wrap{
  position:relative;
  display:flex;
  align-items:center;
  min-height:50px;
  border-radius:13px;
  border:1px solid rgba(144,188,219,.13);
  background:rgba(4,16,29,.48);
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
  overflow:hidden;
}
.login-input-wrap:focus-within{
  border-color:rgba(42,202,229,.54);
  background:rgba(5,20,35,.68);
  box-shadow:0 0 0 4px rgba(17,204,230,.07),0 0 30px rgba(17,204,230,.055);
}
.login-input-wrap>svg{
  position:absolute;
  left:15px;
  width:16px;
  height:16px;
  color:#5f819d;
  pointer-events:none;
}
.login-input-wrap input{
  width:100%;
  height:50px;
  border:0!important;
  outline:0!important;
  background:transparent!important;
  color:#eef8ff!important;
  padding:0 46px 0 44px!important;
  box-shadow:none!important;
  border-radius:0!important;
  font-size:12px;
}
.login-input-wrap input::placeholder{color:#587087}
.password-toggle{
  position:absolute;
  right:9px;
  width:34px;
  height:34px;
  border:0;
  border-radius:9px;
  background:transparent;
  display:grid;
  place-items:center;
  color:#637e96;
  transition:.16s ease;
}
.password-toggle:hover{background:rgba(255,255,255,.045);color:#9ecde3}
.password-toggle svg{width:17px;height:17px}

.login-submit{
  position:relative;
  overflow:hidden;
  min-height:51px;
  margin-top:3px;
  border:1px solid rgba(86,211,237,.24);
  border-radius:13px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  color:#fff;
  font-weight:900;
  font-size:12px;
  letter-spacing:.02em;
  background:linear-gradient(120deg,#1169bd 0%,#0b91c8 52%,#0ab8cf 100%);
  box-shadow:0 14px 34px rgba(4,123,179,.20),inset 0 1px rgba(255,255,255,.16);
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
}
.login-submit::before{
  content:"";
  position:absolute;
  width:80px;
  height:160%;
  left:-110px;
  top:-30%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.20),transparent);
  transform:skewX(-22deg);
  transition:left .5s ease;
}
.login-submit:hover{transform:translateY(-1px);filter:brightness(1.06);box-shadow:0 18px 42px rgba(4,133,192,.28),0 0 0 4px rgba(17,204,230,.055)}
.login-submit:hover::before{left:calc(100% + 20px)}
.login-submit svg{width:15px;height:15px}

.login-divider{
  display:flex;
  align-items:center;
  gap:10px;
  margin:22px 0 15px;
  color:#536a7e;
  font-size:8.5px;
  text-transform:uppercase;
  letter-spacing:.13em;
}
.login-divider::before,.login-divider::after{content:"";height:1px;flex:1;background:rgba(139,183,213,.10)}

.login-request{
  min-height:58px;
  padding:10px 11px;
  border:1px solid rgba(139,188,220,.12);
  border-radius:13px;
  background:rgba(255,255,255,.025);
  display:grid;
  grid-template-columns:36px 1fr 20px;
  align-items:center;
  gap:10px;
  text-decoration:none;
  transition:.17s ease;
}
.login-request:hover{background:rgba(17,204,230,.045);border-color:rgba(66,199,225,.23);transform:translateY(-1px)}
.request-icon{
  width:36px;
  height:36px;
  border-radius:10px;
  display:grid;
  place-items:center;
  color:#61cce4;
  background:rgba(18,153,190,.09);
  border:1px solid rgba(75,190,218,.10);
}
.request-icon svg{width:16px;height:16px}
.login-request>span:nth-child(2){display:grid;gap:2px}
.login-request strong{color:#dcecf7;font-size:10.5px}
.login-request small{color:#657f95;font-size:8.5px}
.request-arrow{width:16px!important;height:16px!important;color:#567187;justify-self:end}

.login-security-note{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  margin-top:20px;
  color:#566f83;
  font-size:8.5px;
  text-align:center;
}
.login-security-note svg{width:13px;height:13px;color:#4d889c;flex:0 0 13px}
.login-error{
  display:flex!important;
  align-items:flex-start;
  gap:8px;
  margin:0 0 18px!important;
  padding:11px 12px!important;
  border-radius:11px!important;
  background:rgba(190,52,52,.10)!important;
  border:1px solid rgba(230,96,96,.18)!important;
  color:#ffc6c6!important;
  font-size:10px!important;
}
.login-error svg{width:15px;height:15px;flex:0 0 15px;color:#f48080;margin-top:1px}

@media (max-width:1180px){
  .premium-login-shell{grid-template-columns:minmax(0,1.25fr) minmax(390px,.8fr)}
  .login-media-copy{width:84%}
  .login-features span:nth-child(3){display:none}
}
@media (max-width:920px){
  .login-body.login-premium{overflow:auto}
  .premium-login-shell{grid-template-columns:1fr;min-height:100svh}
  .login-media-panel{
    position:absolute;
    inset:12px;
    min-height:calc(100svh - 24px);
    margin:0;
    border-radius:24px;
    border:1px solid rgba(134,208,255,.14);
  }
  .login-media-panel::after{display:none}
  .login-video{filter:saturate(.85) contrast(1.05) brightness(.42)}
  .login-video-overlay{background:linear-gradient(180deg,rgba(3,11,22,.42),rgba(3,12,24,.64) 50%,rgba(3,10,21,.88))}
  .login-media-copy{display:none}
  .login-media-status{display:none}
  .login-media-top{top:24px;left:50%;transform:translateX(-50%)}
  .login-logo{width:170px;max-height:145px;object-position:center}
  .login-auth-panel{
    min-height:100svh;
    padding:175px 20px 28px;
    background:transparent;
    border-left:0;
  }
  .login-auth-card{width:min(100%,440px);background:linear-gradient(145deg,rgba(9,27,47,.91),rgba(5,20,36,.94));box-shadow:0 30px 90px rgba(0,0,0,.42)}
}
@media (max-width:520px){
  .login-media-panel{inset:8px;min-height:calc(100svh - 16px);border-radius:20px}
  .login-auth-panel{padding:155px 14px 22px}
  .login-logo{width:148px;max-height:130px}
  .login-auth-card{padding:24px 20px;border-radius:21px}
  .login-auth-heading{margin-bottom:22px}
  .login-auth-heading h1{font-size:27px}
  .login-auth-icon{width:39px;height:39px;flex-basis:39px}
}
@media (prefers-reduced-motion:reduce){
  .login-video{display:none}
  .login-media-panel{background:linear-gradient(145deg,#07192c,#0c3151)}
  .login-submit,.login-request,.login-input-wrap{transition:none}
}

/* ======================================================================
   AEMPRO V1.9 — Login minimalista
   Painel de vídeo sem textos: somente logo central + caixa de login.
   ====================================================================== */
.login-premium .login-media-center{
  position:absolute;
  inset:0;
  z-index:6;
  display:grid;
  place-items:center;
  pointer-events:none;
  padding:clamp(28px,5vw,72px);
}
.login-premium .login-media-center .login-logo{
  width:clamp(280px,31vw,520px);
  max-width:min(58vw,520px);
  max-height:min(58vh,470px);
  height:auto;
  object-fit:contain;
  object-position:center;
  filter:
    drop-shadow(0 22px 42px rgba(0,0,0,.52))
    drop-shadow(0 0 22px rgba(12,169,225,.12));
}
.login-premium .login-video-overlay{
  background:
    radial-gradient(circle at center,rgba(4,15,29,.10) 0%,rgba(3,10,20,.12) 35%,rgba(3,10,20,.42) 100%),
    linear-gradient(90deg,rgba(5,14,26,.20) 0%,rgba(4,13,24,.02) 50%,rgba(5,17,31,.28) 100%);
}
.login-premium .login-video-grid{opacity:.08}

@media (max-width:920px){
  .login-premium .login-media-center{
    align-items:start;
    padding-top:34px;
  }
  .login-premium .login-media-center .login-logo{
    width:clamp(165px,38vw,230px);
    max-width:230px;
    max-height:165px;
  }
}
@media (max-width:520px){
  .login-premium .login-media-center{padding-top:24px}
  .login-premium .login-media-center .login-logo{
    width:160px;
    max-width:160px;
    max-height:132px;
  }
}

/* ======================================================================
   AEMPRO V2.0 — Menu fixo, coluna de contratos, financeiro e prestações
   ====================================================================== */

/* ----- Corpo do workspace com coluna de contratos à direita ----- */
.workspace{padding:24px 26px 44px}
.workspace-body{display:flex;gap:20px;align-items:flex-start}
.workspace-main{flex:1;min-width:0}
.contracts-rail{
  width:332px;flex-shrink:0;display:none;flex-direction:column;
  position:sticky;top:18px;max-height:calc(100vh - 36px);
  background:linear-gradient(180deg,#fff 0,#fbfcff 100%);border:1px solid var(--line);border-radius:18px;
  box-shadow:0 12px 34px rgba(24,36,64,.07);overflow:hidden;
}
body[data-view="municipalities"] .contracts-rail{display:flex}
.rail-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 15px 10px}
.rail-head strong{font-size:15px;letter-spacing:-.02em;color:var(--text-strong)}
.rail-tools{padding:0 13px 9px;display:grid;gap:8px}
.rail-search{height:38px;min-width:0}
.rail-filters{display:flex;gap:5px;flex-wrap:wrap}
.rail-chip{
  border:1px solid var(--line);background:#fff;border-radius:999px;padding:5px 10px;
  font-size:9.5px;font-weight:800;color:#5d687a;transition:.15s ease;
}
.rail-chip:hover{border-color:#c4d0e4}
.rail-chip.active{background:#18366f;border-color:#18366f;color:#fff;box-shadow:0 5px 14px rgba(24,54,111,.22)}
.rail-hint{margin:0 13px 8px;font-size:9px;color:#8b97ab;background:#f4f7fb;border:1px dashed #e0e7f1;border-radius:9px;padding:6px 9px}
.rail-list{flex:1;overflow-y:auto;padding:2px 13px 14px;display:grid;gap:8px;align-content:start;scrollbar-width:thin}
.rail-item{
  position:relative;border:1px solid var(--line);background:#fff;border-radius:13px;padding:11px 12px 10px 15px;
  cursor:pointer;transition:.15s ease;overflow:hidden;
}
.rail-item::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 4px 4px 0;background:#73a582}
.rail-item.exp90::before{background:var(--yellow)}
.rail-item.exp30::before{background:var(--orange)}
.rail-item.exp7::before,.rail-item.expired::before{background:var(--red)}
.rail-item.inactive::before{background:#a5aebd}
.rail-item:hover{border-color:#c9d5e8;box-shadow:0 9px 22px rgba(30,43,73,.09);transform:translateY(-1px)}
.rail-item[draggable="true"]{cursor:grab}
.rail-item[draggable="true"]:active{cursor:grabbing}
.rail-item .ri-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.rail-item .ri-number{font-size:12px;font-weight:800;color:#182841;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rail-item .ri-cat{flex-shrink:0;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;border-radius:7px;padding:3px 6px;background:#eef3fc;color:#36558e}
.rail-item .ri-cat.funcionario{background:#f3eefc;color:#6b48ac}
.rail-item .ri-mun{margin-top:3px;font-size:10px;font-weight:700;color:#3c4c6b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rail-item .ri-mun.none{color:#a0662a}
.rail-item .ri-meta{margin-top:7px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.rail-item .ri-count{font-size:9px;font-weight:800;color:#5f6e86;background:#f1f4f8;border-radius:8px;padding:4px 7px;white-space:nowrap}
.rail-item .ri-value{font-size:11.5px;font-weight:800;color:#18366f;white-space:nowrap}
.rail-empty{border:1px dashed #d4ddea;border-radius:12px;padding:26px 12px;text-align:center;color:var(--muted);font-size:11px;background:rgba(255,255,255,.7)}

/* Grade de municípios convive com a coluna: passa a auto-preencher */
.municipality-grid{grid-template-columns:repeat(auto-fill,minmax(152px,1fr))}
@media(max-width:1220px){
  .workspace-body{flex-direction:column}
  .contracts-rail{position:static;width:100%;max-height:520px;order:2}
}

/* ----- Catálogos no menu (modalidades / centros de custo) ----- */
.side-catalog{margin-top:10px;border-top:1px solid rgba(255,255,255,.07);padding-top:8px}
.side-catalog-toggle{
  width:100%;border:1px solid transparent;background:transparent;color:#aeb9cc;border-radius:11px;padding:10px;
  display:flex;align-items:center;gap:11px;text-align:left;min-height:42px;transition:.16s ease;
}
.side-catalog-toggle:hover{background:rgba(255,255,255,.055);color:#fff}
.side-catalog-toggle b{font-size:11px;font-weight:750;flex:1;min-width:0}
.side-caret{font-style:normal;font-size:10px;color:#7183a5;transition:transform .18s ease}
.side-catalog.open .side-caret{transform:rotate(180deg)}
.side-catalog-body{padding:4px 6px 8px}
.side-catalog-add{display:flex;gap:6px;margin-bottom:8px}
.side-catalog-add input{
  flex:1;min-width:0;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:#eef2fb;
  border-radius:9px;padding:8px 10px;font-size:11px;outline:none;
}
.side-catalog-add input::placeholder{color:#7688a8}
.side-catalog-add input:focus{border-color:rgba(120,160,235,.45);background:rgba(255,255,255,.09)}
.side-add-btn{
  width:33px;flex-shrink:0;border:1px solid rgba(120,160,235,.3);background:rgba(76,111,202,.25);color:#cdd9f6;
  border-radius:9px;font-size:15px;font-weight:900;transition:.15s ease;
}
.side-add-btn:hover{background:rgba(76,111,202,.45);color:#fff}
.side-catalog-list{display:grid;gap:4px;max-height:210px;overflow-y:auto;scrollbar-width:thin}
.side-catalog-item{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.05);border-radius:8px;padding:6px 6px 6px 10px;
}
.side-catalog-item span{font-size:10.5px;color:#c6d0e4;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.side-del-btn{
  width:24px;height:24px;flex-shrink:0;border:0;border-radius:7px;background:rgba(217,79,85,.14);color:#f0a3a6;
  font-size:14px;font-weight:900;line-height:1;transition:.15s ease;
}
.side-del-btn:hover{background:rgba(217,79,85,.34);color:#fff}
.side-empty{color:#7688a8;font-size:10px;padding:4px}

/* ----- Linhas dinâmicas de cargos no contrato ----- */
.positions-editor{grid-column:1/-1;border:1px solid var(--line);border-radius:13px;padding:12px;background:#fafbfe}
.positions-editor .pe-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}
.positions-editor .pe-head strong{font-size:12px;color:#303b50}
.positions-editor .pe-cols{display:grid;grid-template-columns:1.6fr .55fr 1fr 1fr 34px;gap:7px;font-size:8.5px;font-weight:800;
  text-transform:uppercase;letter-spacing:.05em;color:#7b8698;margin-bottom:5px;padding:0 2px}
.position-row{display:grid;grid-template-columns:1.6fr .55fr 1fr 1fr 34px;gap:7px;margin-bottom:7px}
.position-row input{width:100%;border:1px solid #dce3ed;border-radius:9px;padding:8px 9px;background:#fff;font-size:12px;outline:none}
.position-row input:focus{border-color:#91a7da}
.pos-del{border:1px solid #f0cccc;background:#fff4f4;color:#9f2f2f;border-radius:9px;font-size:15px;font-weight:900}
.pos-del:hover{background:#ffe6e6}
.pos-add{border:1px dashed #b9c8e4;background:#f2f6fd;color:#31508f;border-radius:9px;padding:8px;width:100%;font-weight:800;font-size:11px}
.pos-add:hover{background:#e8effb}
@media(max-width:700px){.positions-editor .pe-cols{display:none}.position-row{grid-template-columns:1fr 1fr;grid-auto-rows:auto}}

/* ----- Status de prestação de contas ----- */
.acc-chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 10px;font-size:9.5px;font-weight:900;white-space:nowrap}
.acc-chip::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.acc-chip.andamento{background:#e9f7ef;color:#23865c}
.acc-chip.aguardando{background:#fff6de;color:#93690f}
.acc-chip.atrasada{background:#ffe9e9;color:#b32626}
.acc-chip.conferencia{background:#e9f0ff;color:#2d55b0}
.acc-chip.prestado{background:#1d7a4f;color:#fff}
.acc-resume{
  display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;
  border:1px solid var(--line);background:#fff;border-radius:13px;padding:12px 14px;transition:.15s ease;
}
.acc-resume:hover{border-color:#c9d5e8;box-shadow:0 8px 20px rgba(30,43,73,.07)}
.acc-resume .ar-left{display:flex;align-items:center;gap:10px;min-width:0}
.acc-resume .ar-left strong{font-size:12px}
.acc-resume small{color:var(--muted);font-size:10px}
.acc-table td{font-size:11px}
.acc-row{cursor:pointer}
.acc-row:hover td{background:#f7f9fc}

/* ----- Detalhe do profissional ----- */
.prof-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 16px;margin-top:4px}
.prof-field{min-width:0}
.prof-field small{display:block;color:#8a95a8;font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px}
.prof-field strong{display:block;font-size:12.5px;color:#1a2941;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.masked-note{display:inline-flex;align-items:center;gap:7px;margin-top:10px;font-size:10px;color:#8a6d1d;background:#fff7df;border:1px solid #f2e3ac;border-radius:9px;padding:7px 10px}
.sum-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:14px}
.sum-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px}
.sum-card small{display:block;font-size:8.5px;font-weight:800;color:#8a95a8;text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px}
.sum-card strong{font-size:15px;letter-spacing:-.02em;color:#182841}
.sum-card.pos strong{color:#1d7a4f}
.sum-card.neg strong{color:#b32626}
@media(max-width:1100px){.prof-grid{grid-template-columns:repeat(2,1fr)}.sum-cards{grid-template-columns:repeat(2,1fr)}}

/* ----- Link público de prestação ----- */
.link-box{display:flex;gap:8px;align-items:center;background:#f4f8ff;border:1px solid #d7e3f7;border-radius:11px;padding:10px 12px;margin-top:10px}
.link-box input{flex:1;min-width:0;border:0;background:transparent;font-size:11px;color:#2c4577;outline:none}

/* ----- Fluxo de caixa ----- */
.fin-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.fin-card{
  background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px;cursor:pointer;position:relative;
  transition:.16s ease;overflow:hidden;
}
.fin-card::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:#8fa3c4;opacity:.55}
.fin-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(27,39,68,.09)}
.fin-card.active{border-color:#18366f;box-shadow:0 0 0 3px rgba(24,54,111,.12)}
.fin-card small{display:block;font-size:9px;font-weight:800;color:#7b8698;text-transform:uppercase;letter-spacing:.05em}
.fin-card strong{display:block;margin-top:6px;font-size:18px;letter-spacing:-.02em;color:#182841}
.fin-card em{display:block;font-style:normal;margin-top:3px;font-size:9.5px;color:#95a0b4}
.fin-card.warn::before{background:var(--yellow)}
.fin-card.warn strong{color:#93690f}
.fin-card.danger::before{background:var(--red)}
.fin-card.danger strong{color:#b32626}
.fin-card.okay::before{background:var(--green)}
.fin-card.okay strong{color:#1d7a4f}
.fin-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:16px 0 12px}
.fin-toolbar .searchbox{flex:1;min-width:200px;height:40px}
.fin-toolbar select,.fin-toolbar input[type=month]{
  height:40px;border:1px solid var(--line);border-radius:11px;background:#fff;padding:0 11px;font-size:11.5px;color:var(--text);outline:none;
}
.exp-status{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 9px;font-size:9px;font-weight:900}
.exp-status::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.exp-status.aberta{background:#eef2f9;color:#44599d}
.exp-status.vence7{background:#fff6de;color:#93690f}
.exp-status.vencida{background:#ffe9e9;color:#b32626}
.exp-status.paga{background:#e9f7ef;color:#1d7a4f}
.rec-badge{display:inline-flex;align-items:center;border-radius:7px;background:#f3eefc;color:#6b48ac;font-size:8px;font-weight:900;padding:3px 6px;margin-left:6px;vertical-align:middle}
.auto-badge{display:inline-flex;align-items:center;border-radius:7px;background:#e8f4fb;color:#20658d;font-size:8px;font-weight:900;padding:3px 6px;margin-left:6px;vertical-align:middle}
@media(max-width:1100px){.fin-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.fin-cards{grid-template-columns:1fr}}

/* ----- Dashboard drill ----- */
.kpi.clickable{cursor:pointer;transition:.16s ease}
.kpi.clickable:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(27,39,68,.1);border-color:#cfd9e8}
.kpi.warn strong{color:#93690f}
.kpi.danger strong{color:#b32626}
.kpi.okay strong{color:#1d7a4f}
.dash-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
@media(max-width:1100px){.dash-columns{grid-template-columns:1fr}}

/* ----- Detalhe da prestação (tabela de impostos) ----- */
.tax-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:10px 0}
.tax-grid .tax-item{background:#f8fafd;border:1px solid #e7ecf4;border-radius:11px;padding:9px 11px}
.tax-grid .tax-item small{display:block;font-size:8px;font-weight:800;color:#7b8698;text-transform:uppercase;letter-spacing:.05em}
.tax-grid .tax-item strong{display:block;margin-top:3px;font-size:12.5px;color:#182841}
@media(max-width:700px){.tax-grid{grid-template-columns:repeat(2,1fr)}}

/* Cargo fora dos previstos no contrato */
.cargo-out{color:#e5484d;font-weight:700;background:rgba(229,72,77,.14);border:1px solid rgba(229,72,77,.5);border-radius:6px;padding:1px 8px;display:inline-block}
.cargo-out-hint{color:#e5484d;font-weight:600}

/* ==================== LOGIN FUTURISTA (neo) ==================== */
.neo-body{margin:0;min-height:100vh;background:#03070f;color:#e8f1ff;font-family:inherit;overflow:hidden}
.neo-bg{position:fixed;inset:0;z-index:0}
.neo-bg canvas{position:absolute;inset:0;width:100%;height:100%}
.neo-aurora{position:absolute;width:60vmax;height:60vmax;border-radius:50%;filter:blur(90px);opacity:.5;mix-blend-mode:screen;animation:neoFloat 18s ease-in-out infinite alternate}
.neo-aurora.a1{background:radial-gradient(circle,#0a4ed8 0%,transparent 60%);top:-20vmax;left:-15vmax}
.neo-aurora.a2{background:radial-gradient(circle,#00c8ff 0%,transparent 60%);bottom:-25vmax;right:-10vmax;animation-delay:-6s;animation-duration:22s}
.neo-aurora.a3{background:radial-gradient(circle,#123a8f 0%,transparent 62%);top:30%;left:45%;opacity:.38;animation-delay:-12s;animation-duration:26s}
@keyframes neoFloat{from{transform:translate(0,0) scale(1)}to{transform:translate(6vmax,-4vmax) scale(1.15)}}
.neo-grid{position:absolute;inset:-60%;background-image:linear-gradient(rgba(66,196,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(66,196,255,.055) 1px,transparent 1px);background-size:56px 56px;transform:perspective(600px) rotateX(58deg) translateY(6%);animation:neoGrid 30s linear infinite}
@keyframes neoGrid{from{background-position:0 0,0 0}to{background-position:0 560px,0 560px}}

.neo-shell{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;min-height:100vh}
@media(max-width:900px){.neo-body{overflow:auto}}

/* Marca */
.neo-brand{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;padding:40px}
.neo-logo{width:min(52%,430px);filter:drop-shadow(0 0 34px rgba(0,170,255,.45)) drop-shadow(0 0 90px rgba(0,120,255,.25));animation:neoBreath 5.5s ease-in-out infinite}
@keyframes neoBreath{0%,100%{transform:translateY(0);filter:drop-shadow(0 0 30px rgba(0,170,255,.4)) drop-shadow(0 0 80px rgba(0,120,255,.2))}50%{transform:translateY(-10px);filter:drop-shadow(0 0 46px rgba(0,190,255,.6)) drop-shadow(0 0 110px rgba(0,140,255,.32))}}
.neo-logo-ring{position:absolute;width:min(46vw,560px);height:min(46vw,560px);border-radius:50%;border:1px solid rgba(66,196,255,.16);box-shadow:inset 0 0 60px rgba(0,150,255,.06);animation:neoSpin 40s linear infinite}
.neo-logo-ring::before{content:"";position:absolute;inset:-1px;border-radius:50%;border:1px solid transparent;border-top-color:rgba(56,232,255,.7);filter:blur(.4px)}
.neo-logo-ring::after{content:"";position:absolute;top:-4px;left:50%;width:8px;height:8px;border-radius:50%;background:#38e8ff;box-shadow:0 0 14px 4px rgba(56,232,255,.65)}
@keyframes neoSpin{to{transform:rotate(360deg)}}
.neo-tagline{display:flex;gap:12px;align-items:center;letter-spacing:.35em;font-size:11px;font-weight:700;color:#9fd8ff;text-shadow:0 0 14px rgba(0,170,255,.5);margin:0}
.neo-tagline i{font-style:normal;color:#38e8ff;text-shadow:0 0 10px #38e8ff}
@media(max-width:900px){.neo-logo-ring{display:none}.neo-brand{padding:16px}.neo-logo{width:min(58%,300px)}}

/* Painel / cartão */
.neo-panel{display:flex;align-items:center;justify-content:center;padding:32px}
.neo-card{position:relative;width:min(430px,94vw);border-radius:22px;transition:transform .25s ease;transform-style:preserve-3d}
.neo-card-border{position:absolute;inset:-1.5px;border-radius:23px;background:conic-gradient(from var(--neo-a,0deg),transparent 0 18%,rgba(56,180,255,.9) 26%,rgba(0,229,255,.9) 32%,transparent 42% 100%);animation:neoBorder 6s linear infinite;filter:blur(.5px)}
@property --neo-a{syntax:"<angle>";initial-value:0deg;inherits:false}
@keyframes neoBorder{to{--neo-a:360deg}}
@supports not (background:conic-gradient(from var(--neo-a,0deg),red,blue)){.neo-card-border{animation:neoSpin 6s linear infinite;background:conic-gradient(transparent 0 18%,rgba(56,180,255,.9) 26%,rgba(0,229,255,.9) 32%,transparent 42% 100%)}}
.neo-card-inner{position:relative;border-radius:22px;padding:34px 32px 26px;background:linear-gradient(160deg,rgba(10,22,44,.92),rgba(5,12,26,.94));backdrop-filter:blur(18px);border:1px solid rgba(120,190,255,.14);box-shadow:0 30px 80px rgba(0,0,0,.6),inset 0 1px 0 rgba(160,220,255,.12)}
.neo-card-inner::before{content:"";position:absolute;inset:0;border-radius:22px;background:linear-gradient(120deg,transparent 30%,rgba(120,220,255,.06) 45%,transparent 60%);background-size:250% 100%;animation:neoSheen 7s ease-in-out infinite;pointer-events:none}
@keyframes neoSheen{0%,55%,100%{background-position:120% 0}25%{background-position:-40% 0}}

.neo-head h1{margin:10px 0 4px;font-size:30px;letter-spacing:.5px;background:linear-gradient(90deg,#eaf6ff,#8fd4ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.neo-caret{color:#38e8ff;-webkit-text-fill-color:#38e8ff;animation:neoBlink 1.1s steps(1) infinite}
@keyframes neoBlink{50%{opacity:0}}
.neo-head p{margin:0;color:#9cb3d6;font-size:13.5px}
.neo-badge{display:inline-flex;align-items:center;gap:8px;font-size:10.5px;font-weight:800;letter-spacing:.28em;color:#38e8ff;border:1px solid rgba(56,232,255,.35);background:rgba(56,232,255,.07);padding:6px 12px;border-radius:999px;box-shadow:0 0 18px rgba(56,232,255,.15),inset 0 0 12px rgba(56,232,255,.06)}
.neo-badge-dot{width:7px;height:7px;border-radius:50%;background:#38e8ff;box-shadow:0 0 10px #38e8ff;animation:neoPulse 1.6s ease-in-out infinite}
@keyframes neoPulse{50%{opacity:.35;transform:scale(.8)}}

.neo-error{display:flex;gap:10px;align-items:center;margin-top:16px;padding:11px 14px;border-radius:12px;background:rgba(229,72,77,.12);border:1px solid rgba(229,72,77,.4);color:#ff9a9e;font-size:13px}
.neo-error svg{width:18px;height:18px;fill:#ff6b70;flex:none}

.neo-form{margin-top:20px;display:grid;gap:15px}
.neo-label{display:block;font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#8fb4dd;margin-bottom:7px}
.neo-input{position:relative;display:flex;align-items:center;border-radius:13px;background:rgba(8,18,36,.75);border:1px solid rgba(120,190,255,.18);transition:border-color .2s,box-shadow .2s}
.neo-input svg{width:17px;height:17px;fill:#5f87b8;margin:0 0 0 14px;flex:none;transition:fill .2s}
.neo-input input{flex:1;background:transparent;border:0;outline:0;color:#eaf4ff;font-size:15px;padding:13px 14px 13px 11px;caret-color:#38e8ff}
.neo-input input::placeholder{color:#4d6a92}
.neo-input:focus-within{border-color:rgba(56,200,255,.65);box-shadow:0 0 0 3px rgba(0,170,255,.14),0 0 22px rgba(0,170,255,.18)}
.neo-input:focus-within svg{fill:#38c8ff}
.neo-scan{position:absolute;left:10px;right:10px;bottom:-1px;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,#38e8ff,transparent);opacity:0;transform:scaleX(.3);transition:opacity .25s,transform .35s}
.neo-input:focus-within .neo-scan{opacity:1;transform:scaleX(1)}
.neo-eye{background:none;border:0;cursor:pointer;padding:0 14px;display:flex;align-items:center}
.neo-eye svg{margin:0;fill:#5f87b8}
.neo-eye:hover svg{fill:#9fd8ff}

.neo-submit{position:relative;overflow:hidden;margin-top:4px;display:flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:13px;padding:15px 18px;cursor:pointer;font-weight:800;letter-spacing:.18em;font-size:13px;color:#02101f;background:linear-gradient(90deg,#1e7ef0,#00d4ff);box-shadow:0 10px 30px rgba(0,150,255,.35),inset 0 1px 0 rgba(255,255,255,.35);transition:transform .15s,box-shadow .2s}
.neo-submit:hover{transform:translateY(-2px);box-shadow:0 14px 38px rgba(0,170,255,.5),inset 0 1px 0 rgba(255,255,255,.35)}
.neo-submit:active{transform:translateY(0)}
.neo-submit svg{width:18px;height:18px;fill:#02101f}
.neo-submit-glow{position:absolute;top:0;bottom:0;width:60px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.75),transparent);transform:skewX(-20deg);left:-80px;animation:neoShine 3.2s ease-in-out infinite}
@keyframes neoShine{0%,60%,100%{left:-80px}30%{left:calc(100% + 40px)}}

.neo-divider{display:flex;align-items:center;gap:12px;margin:20px 0 14px;color:#5e7ba3;font-size:11px;letter-spacing:.2em;text-transform:uppercase}
.neo-divider::before,.neo-divider::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(120,190,255,.25),transparent)}

.neo-request{display:flex;align-items:center;gap:13px;text-decoration:none;color:inherit;border:1px solid rgba(120,190,255,.16);border-radius:13px;padding:12px 14px;background:rgba(10,22,44,.5);transition:border-color .2s,background .2s,transform .15s}
.neo-request:hover{border-color:rgba(56,200,255,.5);background:rgba(14,30,58,.7);transform:translateY(-1px)}
.neo-request-icon{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:11px;background:linear-gradient(150deg,rgba(30,126,240,.25),rgba(0,212,255,.15));border:1px solid rgba(56,200,255,.3);flex:none}
.neo-request-icon svg{width:19px;height:19px;fill:#4fc3ff}
.neo-request-text{flex:1;display:flex;flex-direction:column;gap:2px}
.neo-request-text strong{font-size:14px;color:#eaf4ff}
.neo-request-text small{font-size:12px;color:#7e9cc4}
.neo-request-arrow{width:17px;height:17px;fill:#4fc3ff;transition:transform .2s}
.neo-request:hover .neo-request-arrow{transform:translateX(4px)}

.neo-secure{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:18px;font-size:11.5px;color:#6d89b0}
.neo-secure svg{width:14px;height:14px;fill:#38c8ff}
.neo-secure-pulse{width:6px;height:6px;border-radius:50%;background:#22d37f;box-shadow:0 0 8px #22d37f;animation:neoPulse 2s ease-in-out infinite}

/* Autofill do navegador: mantém os campos escuros no login */
.neo-input input:-webkit-autofill,
.neo-input input:-webkit-autofill:hover,
.neo-input input:-webkit-autofill:focus{
  -webkit-box-shadow:0 0 0 1000px #0a1830 inset;
  box-shadow:0 0 0 1000px #0a1830 inset;
  -webkit-text-fill-color:#eaf4ff;
  caret-color:#38e8ff;
  border-radius:13px;
  transition:background-color 99999s ease-in-out 0s;
}
.neo-input input:autofill{background:#0a1830;color:#eaf4ff}

/* ==================== Intro (logo centralizada) ==================== */
.neo-intro{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;background:transparent;transition:opacity .7s ease,visibility .7s}
.neo-intro.leaving{opacity:0;visibility:hidden;pointer-events:none}
.neo-intro-logo{position:relative;background:none;border:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:26px;transition:transform .7s cubic-bezier(.4,0,.2,1),filter .7s}
.neo-intro.leaving .neo-intro-logo{transform:scale(1.35);filter:blur(14px);opacity:0}
.neo-intro-logo img{width:min(44vw,420px);filter:drop-shadow(0 0 40px rgba(0,170,255,.5)) drop-shadow(0 0 110px rgba(0,120,255,.28));animation:neoBreath 5.5s ease-in-out infinite;transition:transform .3s}
.neo-intro-logo:hover img{transform:scale(1.04)}
.neo-intro-ring{position:absolute;top:50%;left:50%;transform:translate(-50%,-56%);width:min(58vw,560px);height:min(58vw,560px);border-radius:50%;border:1px solid rgba(66,196,255,.18);animation:neoSpin 34s linear infinite;pointer-events:none}
.neo-intro-ring::after{content:"";position:absolute;top:-4px;left:50%;width:8px;height:8px;border-radius:50%;background:#38e8ff;box-shadow:0 0 16px 5px rgba(56,232,255,.6)}
.neo-intro-hint{font-size:12px;letter-spacing:.34em;text-transform:uppercase;color:#7fc6ff;text-shadow:0 0 16px rgba(0,170,255,.6);animation:neoHint 2.4s ease-in-out infinite}
@keyframes neoHint{0%,100%{opacity:.55}50%{opacity:1}}

/* Shell aguardando o clique da intro */
.neo-shell.waiting{opacity:0;visibility:hidden}
.neo-shell.entering{animation:neoReveal .6s ease .15s both}
@keyframes neoReveal{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:scale(1)}}
.neo-shell.booting .neo-card{transition:opacity .45s,transform .45s;opacity:0;transform:scale(.97) translateY(8px)}

/* ==================== Boot (ligando o servidor) ==================== */
.neo-boot{position:fixed;inset:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:34px;background:rgba(2,6,14,.82);backdrop-filter:blur(10px);opacity:0;visibility:hidden;transition:opacity .4s ease,visibility .4s}
.neo-boot.on{opacity:1;visibility:visible}
.neo-boot-core{position:relative;width:190px;height:190px;display:flex;align-items:center;justify-content:center}
.neo-boot-core img{width:96px;filter:drop-shadow(0 0 26px rgba(0,180,255,.65));animation:neoCorePulse 1.2s ease-in-out infinite}
@keyframes neoCorePulse{50%{transform:scale(1.08);filter:drop-shadow(0 0 44px rgba(0,220,255,.9))}}
.neo-boot-ring{position:absolute;inset:0;border-radius:50%;border:2px solid transparent}
.neo-boot-ring.r1{border-top-color:#38e8ff;animation:neoSpin 1s linear infinite}
.neo-boot-ring.r2{inset:16px;border-right-color:rgba(30,126,240,.9);animation:neoSpin 1.6s linear infinite reverse}
.neo-boot-ring.r3{inset:32px;border-bottom-color:rgba(0,212,255,.5);animation:neoSpin 2.3s linear infinite}
.neo-boot-lines{min-height:104px;display:flex;flex-direction:column;gap:7px;font-family:Consolas,Menlo,monospace;font-size:13px;color:#9fd8ff}
.neo-boot-line{opacity:0;animation:neoLineIn .3s ease forwards;text-shadow:0 0 12px rgba(0,170,255,.4)}
@keyframes neoLineIn{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:none}}
.neo-boot-line .ok{color:#22d37f;text-shadow:0 0 8px #22d37f;margin-right:6px}
.neo-boot-line .dots::after{content:"";animation:neoDots 1.2s steps(4) infinite}
@keyframes neoDots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}
.neo-boot-bar{width:min(320px,70vw);height:4px;border-radius:4px;background:rgba(120,190,255,.15);overflow:hidden}
.neo-boot-bar i{display:block;height:100%;width:0;border-radius:4px;background:linear-gradient(90deg,#1e7ef0,#00e5ff);box-shadow:0 0 14px rgba(0,200,255,.7);transition:width 1.9s cubic-bezier(.25,.6,.35,1)}

/* Login centralizado: o cartão surge no lugar da logo (troca em cena) */
.neo-shell{display:flex;align-items:center;justify-content:center}
.neo-intro-ring{display:none}
.neo-intro-logo img{width:min(60vw,480px)}
.neo-shell.entering .neo-card{animation:neoSwapIn .55s cubic-bezier(.3,.9,.3,1) .28s both}
@keyframes neoSwapIn{from{opacity:0;transform:scale(.82);filter:blur(10px)}to{opacity:1;transform:scale(1);filter:blur(0)}}
.neo-shell.entering{animation:none;opacity:1}

/* Vídeo de plano de fundo do login */
.neo-bg-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.neo-bg-shade{position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(3,7,15,.25) 0%,rgba(3,7,15,.72) 100%),linear-gradient(rgba(3,7,15,.35),rgba(3,7,15,.35))}

/* Garantia: painel de login sempre centralizado na tela */
.neo-shell{display:flex !important;grid-template-columns:none !important;align-items:center !important;justify-content:center !important}
.neo-panel{margin:0 auto !important}

/* Login minimalista */
.neo-request.minimal{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:16px;padding:12px;border-radius:13px;font-size:13.5px;font-weight:600;letter-spacing:.04em;color:#9fd8ff}
.neo-request.minimal svg{width:16px;height:16px;fill:#4fc3ff;transition:transform .25s}
.neo-request.minimal:hover svg{transform:translateX(3px)}
.neo-card-inner{padding:30px 30px 24px}
.neo-form{margin-top:2px}

/* Acabamento premium do cartao de login */
.neo-card-inner{padding:38px 36px 22px}
.neo-card-brand{display:flex;flex-direction:column;align-items:center;gap:18px;margin-bottom:26px}
.neo-card-brand img{width:132px;filter:drop-shadow(0 0 18px rgba(0,170,255,.35))}
.neo-card-brand-line{width:56px;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,#38c8ff,transparent);box-shadow:0 0 12px rgba(56,200,255,.5)}
.neo-form{display:grid;gap:18px}
.neo-label{font-size:10.5px;letter-spacing:.22em;color:#7fa;color:#7da3cf;margin-bottom:8px}
.neo-input{border-radius:14px;background:rgba(6,14,30,.65)}
.neo-input input{padding:14px 14px 14px 11px;font-size:15px}
.neo-submit{margin-top:8px;padding:16px 18px;border-radius:14px;letter-spacing:.24em}
.neo-hairline{height:1px;margin:22px 4px 4px;background:linear-gradient(90deg,transparent,rgba(120,190,255,.22),transparent)}
.neo-request.minimal{margin-top:6px;color:#8fc9f5}
.neo-request.minimal:hover{color:#d9efff;background:rgba(14,30,58,.45);transform:none}
.neo-foot{margin-top:14px;text-align:center;font-size:10.5px;letter-spacing:.12em;color:#44608a}

/* ==================== Login solto (sem card) ==================== */
.neo-card-border{display:none !important}
.neo-card-inner{background:transparent !important;border:0 !important;box-shadow:none !important;backdrop-filter:none !important;padding:0 !important}
.neo-card-inner::before{display:none !important}
.neo-card{width:min(340px,92vw)}
.neo-card-brand{margin-bottom:34px}
.neo-card-brand img{width:120px}
.neo-form{gap:26px}
.neo-label{color:#6f96c4;font-size:10px;letter-spacing:.26em;margin-bottom:4px}
.neo-input{background:transparent !important;border:0 !important;border-radius:0 !important;border-bottom:1px solid rgba(120,190,255,.28) !important;box-shadow:none !important}
.neo-input svg{margin-left:2px;width:15px;height:15px}
.neo-input input{padding:10px 10px 12px 10px;font-size:15.5px}
.neo-input:focus-within{border-bottom-color:rgba(56,220,255,.85) !important;box-shadow:0 14px 22px -18px rgba(0,190,255,.55) !important}
.neo-scan{left:0;right:0;bottom:-1px}
.neo-eye{padding:0 4px}
.neo-submit{margin-top:14px;background:linear-gradient(90deg,rgba(30,126,240,.92),rgba(0,212,255,.92));border-radius:999px;padding:15px 18px}
.neo-hairline{margin:26px 30px 6px}
.neo-foot{margin-top:16px}
.neo-error{background:rgba(229,72,77,.1);border-color:rgba(229,72,77,.35);margin-bottom:4px}

/* Boot transparente para ver o warp das particulas */
.neo-boot{background:rgba(2,6,14,.30);backdrop-filter:none}
.neo-boot.on ~ .neo-bg, .neo-shell.booting{transition:opacity .4s}
.neo-boot-core{width:150px;height:150px}
.neo-boot-core img{width:74px}
.neo-boot-lines{background:rgba(3,8,18,.5);padding:10px 16px;border-radius:10px}
.neo-boot-bar{background:rgba(120,190,255,.2)}

/* ==================== Entrada do painel: cascata rapida e suave ==================== */
@media (prefers-reduced-motion: no-preference){
  @keyframes appFadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
  @keyframes appFadeIn{from{opacity:0}to{opacity:1}}
  @keyframes appSlideLeft{from{opacity:0;transform:translateX(-18px)}to{opacity:1;transform:none}}
  @keyframes appSlideRight{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}

  .app-body .edge-sidebar{animation:appSlideLeft .4s cubic-bezier(.25,.8,.3,1) both}
  .app-body .topbar{animation:appFadeUp .4s cubic-bezier(.25,.8,.3,1) .08s both}
  .app-body .workspace-main{animation:appFadeIn .35s ease .14s both}
  .app-body .contracts-rail{animation:appSlideRight .45s cubic-bezier(.25,.8,.3,1) .18s both}

  /* Cards e blocos surgem em sequencia sempre que renderizam */
  .municipality-grid>*,.rail-list>*,.contract-grid>*,
  #dashboardContent .kpi,#dashboardContent .panel,
  #financeContent .kpi,#financeContent .panel,
  #reportsContent .panel,#requestsContent .panel,#usersContent .panel{
    animation:appFadeUp .32s cubic-bezier(.25,.8,.3,1) both;
  }
  .municipality-grid>*:nth-child(1),.rail-list>*:nth-child(1),.contract-grid>*:nth-child(1),#dashboardContent .kpi:nth-child(1){animation-delay:.03s}
  .municipality-grid>*:nth-child(2),.rail-list>*:nth-child(2),.contract-grid>*:nth-child(2),#dashboardContent .kpi:nth-child(2){animation-delay:.07s}
  .municipality-grid>*:nth-child(3),.rail-list>*:nth-child(3),.contract-grid>*:nth-child(3),#dashboardContent .kpi:nth-child(3){animation-delay:.11s}
  .municipality-grid>*:nth-child(4),.rail-list>*:nth-child(4),.contract-grid>*:nth-child(4),#dashboardContent .kpi:nth-child(4){animation-delay:.15s}
  .municipality-grid>*:nth-child(5),.rail-list>*:nth-child(5),.contract-grid>*:nth-child(5),#dashboardContent .kpi:nth-child(5){animation-delay:.19s}
  .municipality-grid>*:nth-child(6),.rail-list>*:nth-child(6),.contract-grid>*:nth-child(6){animation-delay:.23s}
  .municipality-grid>*:nth-child(7),.rail-list>*:nth-child(7),.contract-grid>*:nth-child(7){animation-delay:.27s}
  .municipality-grid>*:nth-child(8),.rail-list>*:nth-child(8),.contract-grid>*:nth-child(8){animation-delay:.31s}
  .municipality-grid>*:nth-child(n+9),.rail-list>*:nth-child(n+9),.contract-grid>*:nth-child(n+9){animation-delay:.35s}

  #dashboardContent .panel:nth-child(1){animation-delay:.12s}
  #dashboardContent .panel:nth-child(2){animation-delay:.18s}
  #dashboardContent .panel:nth-child(3){animation-delay:.24s}

  /* Painel de detalhe e modais entram suaves */
  .detail-panel{animation:appFadeUp .3s cubic-bezier(.25,.8,.3,1) both}
  .modal{animation:appFadeUp .26s cubic-bezier(.25,.8,.3,1) both}
  .drawer{animation:appSlideRight .3s cubic-bezier(.25,.8,.3,1) both}
}

/* ==================== Abertura circular do painel (pos-login) ==================== */
.app-reveal-layer{display:none}
html.app-reveal .app-reveal-layer{display:block;position:fixed;inset:0;z-index:9999;pointer-events:none;animation:revealLayerOff .1s linear 1.25s forwards}
html.app-reveal .app-reveal-layer i{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:0;height:0;border-radius:50%;box-shadow:0 0 0 300vmax #03070f,0 0 90px 8px rgba(56,220,255,.55) inset,0 0 60px 6px rgba(56,220,255,.5);animation:revealCircle 1.05s cubic-bezier(.55,.05,.25,1) .12s forwards}
@keyframes revealCircle{0%{width:0;height:0}100%{width:330vmax;height:330vmax}}
@keyframes revealLayerOff{to{opacity:0;visibility:hidden}}

/* Com o reveal ativo, os blocos entram depois que o circulo passa por eles */
@media (prefers-reduced-motion: no-preference){
  html.app-reveal .edge-sidebar{animation-delay:.28s}
  html.app-reveal .topbar{animation-delay:.36s}
  html.app-reveal .workspace-main{animation-delay:.42s}
  html.app-reveal .contracts-rail{animation-delay:.5s}

  /* Icones e itens do menu lateral em cascata */
  .edge-sidebar nav button{animation:appSlideLeft .32s cubic-bezier(.25,.8,.3,1) both}
  .edge-sidebar nav button:nth-child(1){animation-delay:.10s}
  .edge-sidebar nav button:nth-child(2){animation-delay:.16s}
  .edge-sidebar nav button:nth-child(3){animation-delay:.22s}
  .edge-sidebar nav button:nth-child(4){animation-delay:.28s}
  .edge-sidebar nav button:nth-child(5){animation-delay:.34s}
  .edge-sidebar nav button:nth-child(6){animation-delay:.40s}
  .edge-sidebar nav button:nth-child(n+7){animation-delay:.46s}
  html.app-reveal .edge-sidebar nav button:nth-child(1){animation-delay:.42s}
  html.app-reveal .edge-sidebar nav button:nth-child(2){animation-delay:.48s}
  html.app-reveal .edge-sidebar nav button:nth-child(3){animation-delay:.54s}
  html.app-reveal .edge-sidebar nav button:nth-child(4){animation-delay:.60s}
  html.app-reveal .edge-sidebar nav button:nth-child(5){animation-delay:.66s}
  html.app-reveal .edge-sidebar nav button:nth-child(6){animation-delay:.72s}
  html.app-reveal .edge-sidebar nav button:nth-child(n+7){animation-delay:.78s}

  /* Cards atrasam um pouco mais quando vem do reveal */
  html.app-reveal .municipality-grid>*,html.app-reveal .rail-list>*{animation-duration:.38s}
  html.app-reveal .municipality-grid>*:nth-child(1){animation-delay:.55s}
  html.app-reveal .municipality-grid>*:nth-child(2){animation-delay:.62s}
  html.app-reveal .municipality-grid>*:nth-child(3){animation-delay:.69s}
  html.app-reveal .municipality-grid>*:nth-child(4){animation-delay:.76s}
  html.app-reveal .municipality-grid>*:nth-child(5){animation-delay:.83s}
  html.app-reveal .municipality-grid>*:nth-child(n+6){animation-delay:.9s}
  html.app-reveal .rail-list>*:nth-child(1){animation-delay:.65s}
  html.app-reveal .rail-list>*:nth-child(2){animation-delay:.73s}
  html.app-reveal .rail-list>*:nth-child(3){animation-delay:.81s}
  html.app-reveal .rail-list>*:nth-child(n+4){animation-delay:.89s}
}
@media (prefers-reduced-motion: reduce){.app-reveal-layer{display:none !important}}

/* Reveal suave: a luz cobre a tela e se recolhe ao centro, revelando o painel */
html.app-reveal .app-reveal-layer{display:block;position:fixed;inset:0;z-index:9999;pointer-events:none;background:radial-gradient(circle at 50% 50%,rgba(225,247,255,.97) 0%,rgba(140,220,255,.92) 34%,rgba(40,140,220,.85) 62%,rgba(6,16,32,.95) 100%);clip-path:circle(150% at 50% 50%);animation:revealRecede 1.05s cubic-bezier(.55,.1,.3,1) .15s forwards;box-shadow:none}
html.app-reveal .app-reveal-layer i{display:none}
@keyframes revealRecede{
  0%{clip-path:circle(150% at 50% 50%);opacity:1}
  70%{opacity:.9}
  100%{clip-path:circle(0% at 50% 50%);opacity:0;visibility:hidden}
}

/* Whiteout: a luz central do warp cresce ate encobrir a tela toda (fim do login) */
.neo-whiteout{position:fixed;inset:0;z-index:60;pointer-events:none;opacity:0;background:radial-gradient(circle at 50% 50%,#eaf9ff 0%,#bfeaff 38%,#6fd0ff 70%,#2b9fe0 100%);transition:opacity .85s ease-in}
.neo-whiteout.on{opacity:1}

/* Painel: a tela de luz perde a transparencia ate o conteudo ficar 100% visivel */
html.app-reveal .app-reveal-layer{display:block;position:fixed;inset:0;z-index:9999;pointer-events:none;background:radial-gradient(circle at 50% 50%,#eaf9ff 0%,#bfeaff 38%,#6fd0ff 70%,#2b9fe0 100%);clip-path:none;opacity:1;animation:revealFade .95s ease-out .1s forwards}
@keyframes revealFade{
  0%{opacity:1;visibility:visible}
  100%{opacity:0;visibility:hidden}
}

/* ==================== ECG + batimento cardiaco no login ==================== */
/* Remove a grade de quadradinhos do fundo */
.neo-grid{display:none !important}

/* Linha de batimento varrendo da esquerda para a direita */
.neo-ecg{position:absolute;left:0;top:50%;transform:translateY(-50%);width:100%;height:30vh;opacity:.45;pointer-events:none}
.ecg-path{fill:none;stroke:#38e8ff;stroke-width:2.6;stroke-linejoin:round;stroke-linecap:round;
  filter:drop-shadow(0 0 6px rgba(56,232,255,.9)) drop-shadow(0 0 18px rgba(0,170,255,.5));
  stroke-dasharray:340 2160;stroke-dashoffset:2500;animation:ecgSweep 3.4s linear infinite}
@keyframes ecgSweep{from{stroke-dashoffset:2500}to{stroke-dashoffset:0}}

/* Logo pulsando como coracao (tum-tum ... pausa) */
@keyframes neoHeartbeat{
  0%{transform:scale(1)}
  10%{transform:scale(1.07)}
  20%{transform:scale(1)}
  32%{transform:scale(1.055)}
  44%{transform:scale(1)}
  100%{transform:scale(1)}
}
.neo-intro-logo img{animation:neoHeartbeat 1.7s cubic-bezier(.4,0,.3,1) infinite;filter:drop-shadow(0 0 40px rgba(0,170,255,.5)) drop-shadow(0 0 110px rgba(0,120,255,.28))}
@media (prefers-reduced-motion: reduce){.ecg-path{animation:none}.neo-intro-logo img{animation:none}}

/* ECG logo abaixo da logo, batimento sincronizado com a passagem da linha */
.neo-ecg{top:auto;bottom:14%;transform:none;height:15vh;opacity:.55}
@keyframes neoHeartbeatSync{
  0%,13%{transform:scale(1)}
  17%{transform:scale(1.08)}
  23%{transform:scale(1)}
  29%{transform:scale(1.06)}
  37%,100%{transform:scale(1)}
}
.neo-intro-logo img{animation:neoHeartbeatSync 3.4s linear infinite}
@media(max-width:900px){.neo-ecg{bottom:10%}}
.neo-ecg{top:64%;bottom:auto}
@media(max-width:900px){.neo-ecg{top:68%;bottom:auto}}
.neo-ecg{top:76%;bottom:auto}
.neo-intro-hint{position:fixed;left:0;right:0;bottom:5.5%;text-align:center}
@media(max-width:900px){.neo-ecg{top:74%;bottom:auto}}

/* Painel de login rigorosamente centralizado */
.neo-shell{width:100vw;min-height:100vh}
.neo-panel{width:100%;display:flex;align-items:center;justify-content:center;padding:0}
.neo-card{margin:0 auto !important;width:min(320px,90vw)}
.neo-form{justify-items:stretch}
.neo-label{text-align:center;display:block}
.neo-error{justify-content:center}

/* Texto digitado centralizado nos campos do login */
.neo-input input{text-align:center;padding-left:0;padding-right:0}
.neo-input svg{position:absolute;left:6px;top:50%;transform:translateY(-50%);margin:0}
.neo-eye{position:absolute;right:2px;top:50%;transform:translateY(-50%)}
.neo-input{position:relative;justify-content:center}
.neo-input input:-webkit-autofill,.neo-input input:-webkit-autofill:hover,.neo-input input:-webkit-autofill:focus{border-radius:8px}

/* ==================== Cards de profissionais na intro ==================== */
.neo-pros{position:absolute;top:50%;display:flex;align-items:center;pointer-events:none;z-index:0;transition:opacity .25s ease}
.neo-pros.left{left:4%;transform:translateY(-50%)}
.neo-pros.right{right:4%;transform:translateY(-50%);flex-direction:row-reverse}
.neo-pros figure{margin:0;width:clamp(120px,12vw,185px);aspect-ratio:2/3;border-radius:18px;overflow:hidden;position:relative;
  background:linear-gradient(165deg,rgba(16,34,64,.9),rgba(6,14,30,.95));
  border:1px solid rgba(120,190,255,.22);
  box-shadow:0 24px 50px rgba(0,0,0,.55),0 0 24px rgba(0,150,255,.12),inset 0 1px 0 rgba(160,220,255,.14)}
.neo-pros figure::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(3,10,24,.55));border-radius:18px}
.neo-pros img{width:100%;height:100%;object-fit:cover;object-position:top center;filter:saturate(.92)}
/* leque sobreposto */
.neo-pros.left figure:nth-child(1){transform:rotate(-7deg) translateY(14px);z-index:3}
.neo-pros.left figure:nth-child(2){transform:rotate(-3deg) translateY(-6px);margin-left:-48px;z-index:2}
.neo-pros.left figure:nth-child(3){transform:rotate(1deg) translateY(10px);margin-left:-48px;z-index:1}
.neo-pros.right figure:nth-child(1){transform:rotate(7deg) translateY(14px);z-index:3}
.neo-pros.right figure:nth-child(2){transform:rotate(3deg) translateY(-6px);margin-right:-48px;z-index:2}
.neo-pros.right figure:nth-child(3){transform:rotate(-1deg) translateY(10px);margin-right:-48px;z-index:1}
.neo-intro-logo{z-index:2}
/* clique no login: cards somem rapido */
.neo-intro.leaving .neo-pros{opacity:0;transition:opacity .22s ease}
@media(max-width:1100px){.neo-pros figure{width:clamp(90px,10vw,130px)}}
@media(max-width:760px){.neo-pros{display:none}}

/* Profissionais em escada (recorte puro, sem card) */
.neo-pros{top:auto;bottom:0;transform:none;align-items:flex-end}
.neo-pros.left{left:1.5%;flex-direction:row-reverse}
.neo-pros.right{right:1.5%;flex-direction:row}
.neo-pros figure{width:auto;aspect-ratio:auto;border-radius:0;overflow:visible;background:none;border:0;box-shadow:none}
.neo-pros figure::after{display:none}
.neo-pros img{width:auto;object-fit:contain;object-position:bottom;filter:drop-shadow(0 24px 40px rgba(0,0,0,.55)) drop-shadow(0 0 30px rgba(0,60,140,.25))}
/* escada: mais perto da logo = maior e na frente */
.neo-pros figure:nth-child(1){z-index:3}
.neo-pros figure:nth-child(2){z-index:2}
.neo-pros figure:nth-child(3){z-index:1}
.neo-pros figure:nth-child(1) img{height:56vh}
.neo-pros figure:nth-child(2) img{height:47vh}
.neo-pros figure:nth-child(3) img{height:40vh}
.neo-pros figure{transform:none}
.neo-pros.left figure:nth-child(2){margin-right:-70px}
.neo-pros.left figure:nth-child(3){margin-right:-60px}
.neo-pros.right figure:nth-child(2){margin-left:-70px}
.neo-pros.right figure:nth-child(3){margin-left:-60px}
@media(max-width:1100px){.neo-pros figure:nth-child(1) img{height:44vh}.neo-pros figure:nth-child(2) img{height:37vh}.neo-pros figure:nth-child(3) img{height:31vh}}

/* Correcao: remove rotacoes/offsets antigos do leque */
.neo-pros.left,.neo-pros.right{transform:none;top:auto;bottom:0}
.neo-pros.left figure:nth-child(1),.neo-pros.left figure:nth-child(2),.neo-pros.left figure:nth-child(3),
.neo-pros.right figure:nth-child(1),.neo-pros.right figure:nth-child(2),.neo-pros.right figure:nth-child(3){transform:none;margin:0}
.neo-pros.left figure:nth-child(2){margin-right:-70px}
.neo-pros.left figure:nth-child(3){margin-right:-60px}
.neo-pros.right figure:nth-child(2){margin-left:-70px}
.neo-pros.right figure:nth-child(3){margin-left:-60px}

/* Logo da intro um pouco mais alta */
.neo-intro-logo{margin-bottom:16vh}

/* Enquadramento refinado da intro */
/* Figuras da frente um pouco menores para nao invadir o texto AEMPRO */
.neo-pros figure:nth-child(1) img{height:50vh}
.neo-pros figure:nth-child(2) img{height:42vh}
.neo-pros figure:nth-child(3) img{height:35vh}
/* Lado direito mais coeso (recortes tem larguras diferentes) */
.neo-pros.right figure:nth-child(2){margin-left:-95px}
.neo-pros.right figure:nth-child(3){margin-left:-85px}
/* ECG visivel: passa logo abaixo do texto AEMPRO, acima das cabecas */
.neo-ecg{top:53%;bottom:auto;height:13vh;opacity:.5}
/* Chao: vinheta escura assentando os profissionais na base */
.neo-intro::after{content:"";position:absolute;left:0;right:0;bottom:0;height:22vh;background:linear-gradient(180deg,transparent,rgba(2,5,12,.78));pointer-events:none;z-index:1}
.neo-intro-logo{z-index:2}
.neo-intro-hint{z-index:3;color:#a8dcff;text-shadow:0 0 18px rgba(0,170,255,.7)}
@media(max-width:1100px){.neo-pros figure:nth-child(1) img{height:40vh}.neo-pros figure:nth-child(2) img{height:34vh}.neo-pros figure:nth-child(3) img{height:28vh}}
/* ECG na altura do meio dos profissionais */
.neo-ecg{top:auto;bottom:22%;height:13vh}
@media(max-width:900px){.neo-ecg{top:auto;bottom:20%}}
/* Correcao: olhinho da senha alinhado (a regra do icone esquerdo pegava o svg do botao) */
.neo-input .neo-eye{position:absolute;right:2px;top:0;bottom:0;transform:none;height:auto;display:flex;align-items:center;padding:0 8px}
.neo-input .neo-eye svg{position:static;left:auto;top:auto;transform:none;width:17px;height:17px}

/* Boot: nucleo maior + profissionais surgindo um a um e sumindo na transicao */
.neo-boot-core{width:250px;height:250px}
.neo-boot-core img{width:118px}
.neo-boot .neo-pros{z-index:0}
.neo-boot .neo-pros figure{opacity:0}
.neo-boot.on .neo-pros figure{animation:bootProIn .26s ease both,bootProOut .5s ease forwards}
.neo-boot.on .neo-pros figure:nth-child(1){animation-delay:.15s,1.35s}
.neo-boot.on .neo-pros figure:nth-child(2){animation-delay:.35s,1.42s}
.neo-boot.on .neo-pros figure:nth-child(3){animation-delay:.55s,1.49s}
@keyframes bootProIn{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes bootProOut{to{opacity:0;transform:translateY(-14px)}}
.neo-boot-core,.neo-boot-bar{position:relative;z-index:2}
/* Painel de login mais alto (linha do ECG passa abaixo) */
.neo-card{margin:0 auto 16vh !important}

/* Ao entrar: painel de login some por completo (nao fica visivel atras do boot) */
.neo-shell.booting .neo-card,
.neo-shell.booting .neo-card-inner{opacity:0 !important;visibility:hidden !important;pointer-events:none !important;transition:opacity .3s ease,visibility .3s !important;transform:scale(.97) translateY(8px) !important}
.neo-shell.booting{opacity:0 !important;transition:opacity .35s ease .05s !important}
/* Regra final: shell some no boot (fade rapido + hidden) */
.neo-shell.booting{opacity:0 !important;visibility:hidden !important;transition:opacity .3s ease,visibility 0s linear .3s !important;animation:none !important;pointer-events:none !important}
.neo-shell.gone{display:none !important}

/* ==================== Modulo Profissionais PJ ==================== */
.pj-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px;border-bottom:1px solid var(--line,#e3e8f0);padding-bottom:8px}
.pj-tabs.sub{margin:0;border:0;padding:0}
.pj-tab{position:relative;background:transparent;border:1px solid transparent;border-radius:999px;padding:8px 14px;font-weight:600;font-size:13.5px;color:#5b6b85;cursor:pointer;transition:background .15s,color .15s}
.pj-tab:hover{background:rgba(13,110,230,.08);color:#0a4fa8}
.pj-tab.active{background:#0d6ee6;color:#fff}
.pj-tab .nav-badge{position:static;margin-left:6px}
.pj-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.pj-toolbar label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#5b6b85}
.pj-toolbar select,.pj-month{padding:9px 12px;border:1px solid #d6deea;border-radius:10px;font:inherit;background:#fff}
.pj-toolbar .searchbox{flex:1;min-width:220px}
.pj-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:1000px){.pj-grid-2{grid-template-columns:1fr}}
.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.kpi.kpi-mini{cursor:pointer;padding:10px 12px}
.kpi.kpi-mini strong{font-size:20px}
.kpi.dim{opacity:.55}
.kpi.ok{border-color:#1a8f5a}.kpi.warn{border-color:#c47a08}.kpi.crit{border-color:#c8342a}
.nf-chip{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:700;letter-spacing:.02em;white-space:nowrap;border:1px solid transparent}
.nf-a-enviar{background:#e6f2ff;color:#0a4fa8;border-color:#b9d8ff}
.nf-nao-emitida{background:#fde8e6;color:#a8231b;border-color:#f3b8b3}
.nf-em-revisao{background:#fff1d6;color:#8a5200;border-color:#f5d28a}
.nf-a-pagar{background:#e2f0ff;color:#0d4f9c;border-color:#9fc4f5}
.nf-paga{background:#e4f6ec;color:#116b3f;border-color:#a9dfc1}
.nf-parcelada{background:#efe6ff;color:#5b2ea3;border-color:#cdb7f2}
.pill.ok{background:#e4f6ec;color:#116b3f}.pill.warn{background:#fff1d6;color:#8a5200}.pill.crit{background:#fde8e6;color:#a8231b}
.pj-table td.num,.data-table th.num,.data-table td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.pj-preview{max-height:52vh;overflow:auto}
.pj-preview-filters{display:flex;gap:6px;margin:8px 0}
.pj-preview-filters .pill{cursor:pointer}.pj-preview-filters .pill.active{background:#0d6ee6;color:#fff}
.pj-accept{font-size:12px;color:#5b6b85;display:inline-flex;gap:6px;align-items:center;cursor:pointer}
.pj-nf-box{border:1px solid #d6deea;border-radius:12px;padding:12px 14px;background:#f7f9fc}
.pj-nf-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.pj-link{width:100%;padding:10px;border:1px solid #d6deea;border-radius:8px;font:13px Consolas,monospace}
.pj-row-actions{white-space:nowrap}.pj-row-actions .btn{margin:2px}
.row-alert td{background:#fff5f4}
.muted{color:#6b7a94}
tr.dim{opacity:.55}
.alert.warn{background:#fff1d6;border-color:#f5d28a;color:#6b4300}
.icon-btn.small{width:26px;height:26px;font-size:16px;line-height:1}
/* Documento de execucao */
.exec-doc h4{margin:16px 0 6px;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:#5b6b85}
.exec-head{width:100%;border-collapse:collapse;font-size:13.5px}
.exec-head td{padding:6px 8px;border:1px solid #d6deea}
.exec-head td:first-child{width:220px;font-weight:700;background:#f2f5fa}
.exec-decl{margin:16px 0;font-size:13px;line-height:1.5;padding:10px 12px;border-left:3px solid #0d6ee6;background:#f2f5fa}
.exec-sign{display:flex;justify-content:space-around;margin-top:48px;text-align:center;font-size:13px}
@media print{.edge-sidebar,.topbar,.pj-tabs,.pj-toolbar,.no-print,.contracts-rail,#toast{display:none !important}.modal{box-shadow:none;max-width:none;width:100%}.print-block{padding:0}}

/* Zona de risco / exclusao de dados importados */
.danger-zone{border:1px solid #f0c2bd;background:#fff8f7}
.danger-zone h3{color:#a8231b}
.reset-box{border:1px solid #d6deea;border-radius:12px;padding:14px 16px;background:#f7f9fc}
.reset-box h4{margin:0 0 6px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#5b6b85}
.reset-list{list-style:none;margin:0;padding:0;font-size:14px}
.reset-list li{padding:4px 0;border-bottom:1px dashed #dde4ee}
.reset-list li:last-child{border-bottom:0}
.reset-list li strong{display:inline-block;min-width:52px;font-variant-numeric:tabular-nums;color:#0f1c33}
.reset-list li.crit strong{color:#a8231b}
.reset-confirm{width:220px;padding:10px 12px;border:2px solid #e5a49e;border-radius:10px;font:600 14px/1 Consolas,monospace;letter-spacing:.14em;text-transform:uppercase}
.reset-confirm:focus{outline:none;border-color:#c8342a;box-shadow:0 0 0 3px rgba(200,52,42,.14)}
.btn.danger[disabled]{opacity:.45;cursor:not-allowed}

/* ==================== V3.1 — cadastro, painel, contratos e configuracao ==================== */
:root{
  --ok-bg:#e8f7ee;--ok-line:#3fbf7f;--ok-ink:#0f7a45;
  --warn-bg:#fff6e3;--warn-line:#e9a93a;--warn-ink:#8a5200;
  --crit-bg:#fdecea;--crit-line:#e0574c;--crit-ink:#a8231b;
}
/* Semaforo de preenchimento */
.gauge{display:inline-flex;align-items:center;gap:8px;justify-content:flex-end;min-width:104px}
.gauge-bar{width:56px;height:7px;border-radius:6px;background:#e5eaf2;overflow:hidden}
.gauge-bar i{display:block;height:100%;border-radius:6px;transition:width .3s}
.gauge span{font-variant-numeric:tabular-nums;font-weight:700;font-size:12.5px;min-width:34px;text-align:right}
.gauge-low .gauge-bar i{background:var(--crit-line)} .gauge-low span{color:var(--crit-ink)}
.gauge-partial .gauge-bar i{background:var(--warn-line)} .gauge-partial span{color:var(--warn-ink)}
.gauge-full .gauge-bar i{background:var(--ok-line)} .gauge-full span{color:var(--ok-ink)}
.people-table tbody tr{border-left:4px solid transparent}
.people-table tbody tr.row-low{background:var(--crit-bg);border-left-color:var(--crit-line)}
.people-table tbody tr.row-partial{background:var(--warn-bg);border-left-color:var(--warn-line)}
.people-table tbody tr.row-full{background:var(--ok-bg);border-left-color:var(--ok-line)}
.people-table tbody tr.row-low:hover{background:#fbdedb}
.people-table tbody tr.row-partial:hover{background:#fdeecd}
.people-table tbody tr.row-full:hover{background:#dcf1e5}
.people-table td{vertical-align:middle}
.kpi-mini.sel{outline:2px solid #0d6ee6;outline-offset:-2px}
.kpi-mini.gauge-low strong{color:var(--crit-ink)}.kpi-mini.gauge-partial strong{color:var(--warn-ink)}.kpi-mini.gauge-full strong{color:var(--ok-ink)}
/* Chips */
.chip{display:inline-block;padding:2px 9px;margin:2px 3px 2px 0;border-radius:999px;font-size:12px;font-weight:600;background:#eaf1fb;color:#28456f;border:1px solid #d3e0f2;white-space:nowrap}
.chip.lg{font-size:13px;padding:5px 12px}
.chip.primary{background:#0d6ee6;color:#fff;border-color:#0d6ee6}
.chip.more{background:#dfe6f0;color:#4a5d78;cursor:help}
.chip.req{background:var(--crit-bg);color:var(--crit-ink);border-color:#f1c3be}
.chip-none{font-size:12px;color:#a02c22;font-style:italic}
/* Painel do profissional */
.pf-wrap{display:flex;flex-direction:column;gap:16px}
.pf-hero{display:grid;grid-template-columns:auto 1fr auto;gap:20px;align-items:center;padding:22px 24px;border-radius:16px;background:linear-gradient(135deg,#102845,#16365f);color:#eaf2ff;box-shadow:0 12px 30px rgba(10,30,60,.18)}
.pf-hero.pf-low{background:linear-gradient(135deg,#4a1714,#7a2a22)}
.pf-hero.pf-partial{background:linear-gradient(135deg,#4a3410,#7d5a18)}
.pf-hero.pf-full{background:linear-gradient(135deg,#0f3a26,#166b41)}
.pf-avatar{width:64px;height:64px;border-radius:18px;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800;letter-spacing:.5px}
.pf-ident h2{margin:2px 0 4px;font-size:26px}
.pf-ident p{margin:0;opacity:.86;font-size:14px}
.pf-ident .eyebrow{color:#bcd6ff}
.pf-scope{margin-top:8px}
.pf-scope .chip{background:rgba(255,255,255,.14);color:#eaf2ff;border-color:rgba(255,255,255,.2)}
.pf-gauge{text-align:center;color:#eaf2ff}
.pf-ring{--pct:0;width:88px;height:88px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:19px;
  background:conic-gradient(currentColor calc(var(--pct)*1%),rgba(255,255,255,.18) 0);position:relative}
.pf-ring::after{content:"";position:absolute;inset:9px;border-radius:50%;background:rgba(12,28,52,.88)}
.pf-ring span{position:relative;z-index:1;color:#fff}
.pf-ring.gauge-low{color:#ff6b60}.pf-ring.gauge-partial{color:#f5c357}.pf-ring.gauge-full{color:#4fdd9a}
.pf-gauge small{display:block;margin-top:6px;opacity:.75;font-size:11.5px}
.pf-alert{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 18px;border-radius:14px;border:1px solid;font-size:14px}
.pf-alert.gauge-low{background:var(--crit-bg);border-color:#f1c3be;color:var(--crit-ink)}
.pf-alert.gauge-partial{background:var(--warn-bg);border-color:#f2d79c;color:var(--warn-ink)}
.pf-alert.gauge-full{background:var(--ok-bg);border-color:#b6e5cb;color:var(--ok-ink)}
.pf-alert .req{font-weight:700}
.pf-missing-list{flex:1;min-width:200px}
.pf-tabs{display:flex;gap:4px;border-bottom:2px solid #e3e8f0}
.pf-tab{background:none;border:0;padding:11px 18px;font-weight:700;font-size:14px;color:#5b6b85;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px}
.pf-tab:hover{color:#0d6ee6}
.pf-tab.active{color:#0d6ee6;border-bottom-color:#0d6ee6}
.tab-count{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;background:#e8eef8;color:#4a5d78;font-size:11px}
.pf-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}
.pf-card{background:#fff;border:1px solid #e3e8f0;border-radius:14px;padding:18px 20px}
.pf-card h3{margin:0 0 12px;font-size:13px;letter-spacing:.09em;text-transform:uppercase;color:#5b6b85}
.pf-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.pf-card-head h3{margin:0}
.pf-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}
.pf-field small{display:block;font-size:11.5px;color:#6b7a94;margin-bottom:2px}
.pf-field strong{font-size:14px;font-weight:600;color:#0f1c33;word-break:break-word}
.pf-field.pf-missing{padding-left:9px;border-left:3px solid var(--crit-line);background:var(--crit-bg);border-radius:0 8px 8px 0;margin-left:-4px}
.pf-chips{display:flex;flex-wrap:wrap;gap:4px}
.pf-sub{margin:0 0 8px;font-size:13px;color:#5b6b85}
.check-list{max-height:280px;overflow:auto;border:1px solid #dde4ee;border-radius:10px;padding:6px}
.check-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;font-size:13.5px;cursor:pointer}
.check-item:hover{background:#f2f6fc}
.check-item span{flex:1}
.star{background:none;border:0;color:#c9d4e4;cursor:pointer;font-size:15px;padding:0 4px}
.star.on{color:#e9a93a}
/* Lista de contratos no painel */
.doc-list{display:flex;flex-direction:column;gap:8px}
.doc-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border:1px solid #e3e8f0;border-left:4px solid #c9d4e4;border-radius:12px;background:#fbfcfe}
.doc-item.doc-vigente{border-left-color:var(--ok-line)}
.doc-item.doc-rascunho{border-left-color:#9aa9bf}
.doc-item.doc-encerrado{border-left-color:#c9d4e4;opacity:.75}
.doc-main{display:flex;flex-direction:column;gap:2px}
.doc-main small{color:#6b7a94;font-size:12px}
.doc-side{display:flex;align-items:center;gap:10px}
.doc-status{padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:700;background:#eef2f8;color:#4a5d78}
.doc-status.doc-vigente{background:var(--ok-bg);color:var(--ok-ink)}
.doc-status.doc-rascunho{background:#eef2f8;color:#4a5d78}
.doc-status.doc-encerrado{background:#f1f4f9;color:#7b8aa3}
.doc-status.doc-cancelado{background:var(--crit-bg);color:var(--crit-ink)}
/* Editor de documentos */
.dc-wrap{display:grid;grid-template-columns:minmax(330px,380px) 1fr;gap:18px;align-items:start}
@media(max-width:1000px){.dc-wrap{grid-template-columns:1fr}}
.dc-side{display:flex;flex-direction:column;gap:12px;position:sticky;top:0}
.dc-card{background:#fff;border:1px solid #e3e8f0;border-radius:14px;padding:14px 16px}
.dc-card h4{margin:0 0 10px;font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:#5b6b85}
.dc-card label{display:block;font-size:12px;color:#5b6b85;font-weight:600;margin-bottom:9px}
.dc-card input,.dc-card select{width:100%;margin-top:4px;padding:8px 10px;border:1px solid #d6deea;border-radius:9px;font:inherit;font-size:13.5px}
.dc-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.dc-prof{padding:10px;border-radius:10px;background:#f2f6fc;margin-bottom:10px}
.dc-prof strong{display:block}.dc-prof small{display:block;color:#5b6b85;font-size:12px}
.dc-help p{font-size:12.5px;color:#5b6b85;line-height:1.5;margin:0}
.dc-main{min-width:0}
.seg{display:inline-flex;border:1px solid #d6deea;border-radius:10px;overflow:hidden;background:#fff}
.seg-btn{background:none;border:0;padding:8px 16px;font-weight:600;font-size:13px;color:#5b6b85;cursor:pointer}
.seg-btn.active{background:#0d6ee6;color:#fff}
.rt{border:1px solid #d6deea;border-radius:14px;overflow:hidden;background:#fff}
.rt-bar{display:flex;flex-wrap:wrap;gap:3px;align-items:center;padding:8px 10px;background:#f5f8fc;border-bottom:1px solid #e3e8f0;position:sticky;top:0;z-index:5}
.rt-bar button{min-width:32px;height:30px;border:1px solid transparent;border-radius:7px;background:none;cursor:pointer;font-size:13px;color:#33445e}
.rt-bar button:hover{background:#e4ecf7;border-color:#cfdcee}
.rt-bar select{height:30px;border:1px solid #d6deea;border-radius:7px;background:#fff;font-size:12.5px;padding:0 6px}
.rt-sep{width:1px;height:20px;background:#dde4ee;margin:0 4px}
.rt-page{min-height:60vh;padding:56px 64px;font:15px/1.75 Georgia,"Times New Roman",serif;color:#12203a;outline:none;background:#fff}
.rt-page h2{font-size:19px;margin:0 0 16px}.rt-page h3{font-size:16px;margin:20px 0 8px}.rt-page h4{font-size:14.5px;margin:16px 0 6px}
.rt-page p{margin:0 0 11px;text-align:justify}
.doc-token{background:#e6f0ff;color:#0a4fa8;border:1px dashed #9fc4f5;border-radius:5px;padding:0 5px;font-family:Consolas,monospace;font-size:12.5px;white-space:nowrap}
.doc-token-missing{background:var(--crit-bg);color:var(--crit-ink);border:1px dashed #e5a49e;border-radius:5px;padding:0 5px;font-size:12.5px}
/* Documento renderizado */
.dc-preview{display:flex;justify-content:center}
.doc-paper{width:100%;max-width:820px;background:#fff;border:1px solid #e3e8f0;border-radius:14px;padding:56px 64px;box-shadow:0 10px 30px rgba(20,40,70,.08);font:15px/1.75 Georgia,"Times New Roman",serif;color:#12203a}
.doc-head{display:flex;gap:18px;align-items:center;border-bottom:2px solid #0d6ee6;padding-bottom:14px;margin-bottom:26px}
.doc-logo{max-height:66px;max-width:190px;object-fit:contain}
.doc-head-info{display:flex;flex-direction:column;gap:2px;font-family:"Segoe UI",system-ui,sans-serif}
.doc-head-info strong{font-size:14.5px;color:#0f1c33}
.doc-head-info small{font-size:11.5px;color:#5b6b85}
.doc-body h2{font-size:19px;margin:0 0 16px}.doc-body h3{font-size:16px;margin:20px 0 8px}
.doc-body p{margin:0 0 11px;text-align:justify}
.doc-signs{display:flex;justify-content:space-around;gap:30px;margin-top:64px;flex-wrap:wrap;font-family:"Segoe UI",system-ui,sans-serif}
.doc-sign{text-align:center;min-width:210px}
.doc-sign img{max-height:64px;max-width:200px;object-fit:contain;display:block;margin:0 auto -6px}
.doc-sign-space{height:58px}
.doc-sign-line{border-top:1px solid #12203a;margin:0 auto 6px;width:100%}
.doc-sign strong{display:block;font-size:13.5px}
.doc-sign small{display:block;font-size:11.5px;color:#5b6b85}
/* Modelos */
.tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.tpl-card{background:#fff;border:1px solid #e3e8f0;border-radius:14px;padding:18px 20px;display:flex;flex-direction:column;gap:8px}
.tpl-card header{display:flex;justify-content:space-between;align-items:center;gap:8px}
.tpl-card h4{margin:0;font-size:15.5px}
.tpl-card p{margin:0;font-size:13px;color:#5b6b85;flex:1}
.tpl-meta{display:flex;gap:12px;font-size:11.5px;color:#7b8aa3}
.tpl-actions{display:flex;gap:6px;flex-wrap:wrap}
.tpl-card.dim{opacity:.6}
/* Configuracao */
.cfg-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:16px;align-items:start}
@media(max-width:1000px){.cfg-grid{grid-template-columns:1fr}}
.cfg-logo{display:flex;gap:16px;align-items:center}
.cfg-logo-box{width:170px;height:88px;border:2px dashed #cfdcee;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#f7fafd;color:#8fa3bf;font-size:12px}
.cfg-logo-box img{max-width:100%;max-height:100%;object-fit:contain}
.sig-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.sig-card{border:1px solid #e3e8f0;border-radius:12px;padding:14px;text-align:center;background:#fff}
.sig-card.dim{opacity:.55}
.sig-img{height:64px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid #12203a;margin-bottom:8px;color:#a9b7cc;font-size:11.5px}
.sig-img img{max-height:60px;max-width:100%;object-fit:contain}
.sig-card strong{display:block;font-size:13.5px}
.sig-card small{display:block;font-size:11.5px;color:#5b6b85}
.sig-actions{display:flex;gap:6px;justify-content:center;margin-top:10px}
/* Impressao do documento */
.print-only-doc{display:none}
@media print{
  body.printing-doc>*{display:none !important}
  body.printing-doc .print-only-doc{display:block !important;position:static}
  body.printing-doc .doc-paper{border:0;box-shadow:none;border-radius:0;padding:0;max-width:none}
  @page{size:A4;margin:18mm 16mm}
}

/* ==================== Edicao inline e historico ==================== */
.pf-hint{grid-column:1/-1;font-size:12.5px;color:#4a5d78;background:#eef4fc;border:1px solid #d6e4f6;border-radius:10px;padding:9px 14px}
.pf-field{position:relative;border-radius:9px;padding:2px 4px;transition:background .15s,box-shadow .15s}
.pf-field.pf-editable{cursor:text}
.pf-field.pf-editable:hover{background:#eef4fc;box-shadow:inset 0 0 0 1px #cfe0f7}
.pf-field.pf-editable:focus{outline:2px solid #0d6ee6;outline-offset:1px}
.pf-field.pf-editable::after{content:"✎";position:absolute;top:4px;right:6px;font-size:11px;color:#8fa8cc;opacity:0;transition:opacity .15s}
.pf-field.pf-editable:hover::after{opacity:1}
.pf-field.pf-locked{opacity:.92}
.pf-field.pf-editing{background:#fff;box-shadow:0 0 0 2px #0d6ee6,0 6px 18px rgba(13,110,230,.14);padding:8px;z-index:2}
.pf-field.pf-saved{background:#e8f7ee;box-shadow:inset 0 0 0 1px #9ad9b8}
.pf-input{width:100%;margin-top:4px;padding:8px 10px;border:1px solid #b9d0ee;border-radius:8px;font:inherit;font-size:14px;background:#fff}
.pf-input:focus{outline:none;border-color:#0d6ee6;box-shadow:0 0 0 3px rgba(13,110,230,.14)}
.pf-edit-actions{display:flex;gap:6px;margin-top:8px}
.pf-stamp{display:block;margin-top:3px;font-size:10.5px;font-style:normal;color:#7b8aa3;letter-spacing:.01em}
.pf-missing-list .chip[data-goto]{cursor:pointer}
.pf-missing-list .chip[data-goto]:hover{background:#0d6ee6;color:#fff;border-color:#0d6ee6}
.pf-history{max-height:320px;overflow:auto}
.hist-table{font-size:12.5px}
.hist-table td.old{color:#a8231b;text-decoration:line-through;max-width:180px;overflow:hidden;text-overflow:ellipsis}
.hist-table td.new{color:#0f7a45;font-weight:600;max-width:180px;overflow:hidden;text-overflow:ellipsis}
/* Registro de atividades */
.log-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.log-toolbar input,.log-toolbar select{padding:9px 12px;border:1px solid #d6deea;border-radius:10px;font:inherit;font-size:13.5px}
.log-item{display:grid;grid-template-columns:150px 150px 1fr;gap:12px;padding:11px 14px;border-bottom:1px solid #eef1f6;font-size:13.5px;align-items:start}
.log-item:hover{background:#f7fafd}
.log-when{color:#5b6b85;font-variant-numeric:tabular-nums;font-size:12.5px}
.log-who{font-weight:700;color:#0f1c33}
.log-who small{display:block;font-weight:400;color:#7b8aa3;font-size:11.5px}
.log-what strong{color:#0f1c33}
.log-diff{margin-top:3px;font-size:12.5px}
.log-diff .from{color:#a8231b;text-decoration:line-through}
.log-diff .to{color:#0f7a45;font-weight:600}
.log-kind{display:inline-block;padding:1px 8px;border-radius:999px;font-size:10.5px;font-weight:700;margin-right:6px;text-transform:uppercase;letter-spacing:.04em}
.log-kind.change{background:#e6f0ff;color:#0a4fa8}
.log-kind.action{background:#f1f4f9;color:#4a5d78}
.cfg-tabs{display:flex;gap:6px;margin-bottom:14px;border-bottom:1px solid #e3e8f0;padding-bottom:8px}

/* ==================== Painel do profissional em secoes continuas ==================== */
.pf-jump{position:sticky;top:0;z-index:8;display:flex;gap:6px;flex-wrap:wrap;padding:11px 0 10px;background:#f4f7fb;box-shadow:0 6px 10px -8px rgba(20,40,80,.28),0 -14px 0 14px #f4f7fb}
.pf-jump-btn{background:#fff;border:1px solid #dde4ee;border-radius:999px;padding:7px 15px;font-weight:600;font-size:13px;color:#5b6b85;cursor:pointer;transition:all .15s}
.pf-jump-btn:hover{border-color:#9fc4f5;color:#0a4fa8}
.pf-jump-btn.active{background:#0d6ee6;border-color:#0d6ee6;color:#fff}
.pf-jump-btn .tab-count{background:rgba(255,255,255,.25);color:inherit}
.pf-jump-btn:not(.active) .tab-count{background:#e8eef8;color:#4a5d78}
.pf-section{scroll-margin-top:56px;padding-top:6px}
.pf-section + .pf-section{margin-top:26px;border-top:2px dashed #dde4ee;padding-top:22px}
.pf-sec-head{display:flex;align-items:center;gap:14px;margin-bottom:14px;flex-wrap:wrap}
.pf-sec-n{width:34px;height:34px;flex:none;border-radius:11px;background:#0d6ee6;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;box-shadow:0 4px 12px rgba(13,110,230,.28)}
.pf-sec-head h2{margin:0;font-size:19px;letter-spacing:-.01em;color:#0f1c33}
.pf-sec-head small{display:block;color:#6b7a94;font-size:12.5px;margin-top:1px}
.pf-sec-head>div{flex:1;min-width:180px}
.pf-scope-btn{font-size:14.5px;padding:12px 22px;border-radius:12px;box-shadow:0 6px 18px rgba(13,110,230,.3)}
.pf-scope-btn span{margin-right:7px;font-size:15px}
/* Dialogo de atuacao */
.scope-cols{gap:20px}
.scope-col{min-width:0}
.scope-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;flex-wrap:wrap}
.scope-head .pf-sub{margin:0}
.scope-count{color:#0d6ee6;font-weight:700}
.check-list{max-height:340px}
.check-item small.muted{font-size:11.5px}

/* ==================== Atuacao dinamica: arrastar para lixeira ==================== */
.scope-card .pf-card-head{margin-bottom:12px}
.add-btn{white-space:nowrap}
.chip.lg.drag{cursor:grab;user-select:none;transition:transform .12s,box-shadow .12s,background .12s}
.chip.lg.drag:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(20,40,70,.16);background:#dce9fb}
.chip.lg.drag:hover::after{content:" ⠿";opacity:.55;font-size:11px}
.chip.lg.drag:active{cursor:grabbing}
.chip.lg.dragging{opacity:.45;transform:scale(.96)}
.chip.lg.primary.drag:hover{background:#0a5cc4}
.drop-trash{grid-column:1/-1;display:none;align-items:center;gap:14px;padding:16px 20px;border:2px dashed #e0a49e;border-radius:14px;background:#fdf2f0;color:#a8231b;transition:all .15s}
body.dragging-scope .drop-trash{display:flex;animation:trashIn .2s ease}
.drop-trash.over{background:#f9d9d4;border-color:#c8342a;transform:scale(1.01);box-shadow:0 6px 20px rgba(200,52,42,.2)}
.drop-trash .trash-ico{font-size:26px;line-height:1}
.drop-trash strong{display:block;font-size:14px}
.drop-trash small{font-size:12px;opacity:.85}
@keyframes trashIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.icon-btn.trash{width:30px;height:30px;font-size:14px;border-radius:8px;color:#a8231b}
.icon-btn.trash:hover{background:#fdecea}

/* Etiquetas longas (nomes de unidade) quebram linha e ficam dentro do quadro,
   senão transbordam para o cartão vizinho e o arraste não pega. */
.pf-chips{align-items:flex-start}
.pf-chips .chip.lg{white-space:normal;max-width:100%;overflow-wrap:anywhere;line-height:1.35;display:inline-flex;align-items:center;gap:6px;text-align:left}
.pf-chips .chip.lg.drag::before{content:"⠿";font-size:12px;opacity:.45;flex:none}
.pf-chips .chip.lg.drag:hover::before{opacity:.9}
.pf-chips .chip.lg.drag:hover::after{content:none}

/* Lixeira flutuante: não entra na grade, portanto não empurra nada ao aparecer */
.drop-trash{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(14px);
  grid-column:auto;width:auto;min-width:320px;z-index:130;opacity:0;pointer-events:none;
  background:#fff;border:2px dashed #e0a49e;box-shadow:0 14px 40px rgba(20,40,70,.22);
  transition:opacity .18s ease,transform .18s ease,background .15s,border-color .15s}
body.dragging-scope .drop-trash{display:flex;opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto;animation:none}
.drop-trash.over{background:#f9d9d4;border-color:#c8342a;transform:translateX(-50%) translateY(0) scale(1.04)}

/* Rolagem suave nativa do painel de detalhe (usada pelos atalhos das seções) */
.detail-panel{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){.detail-panel{scroll-behavior:auto}}

/* Visualização do contrato + quadros dentro do documento */
.pv-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid #e3e8f0}
.pv-head h2{margin:2px 0 4px;font-size:22px}
.pv-warn{background:var(--warn-bg);color:var(--warn-ink);border:1px solid #f2d79c;border-radius:999px;padding:6px 14px;font-size:12.5px;font-weight:700}
.pv-ok{background:var(--ok-bg);color:var(--ok-ink);border:1px solid #b6e5cb;border-radius:999px;padding:6px 14px;font-size:12.5px;font-weight:700}
.doc-tab{width:100%;border-collapse:collapse;margin:10px 0 14px;font-family:"Segoe UI",system-ui,sans-serif;font-size:12.5px}
.doc-tab th,.doc-tab td{border:1px solid #b9c4d4;padding:6px 9px;text-align:left;vertical-align:top}
.doc-tab thead th{background:#eef3fa;font-size:11.5px;letter-spacing:.04em;text-transform:uppercase}
.doc-tab tbody th{background:#f5f8fc;width:150px;font-weight:700}
@media print{.doc-tab th,.doc-tab td{border-color:#333}.doc-tab thead th,.doc-tab tbody th{background:#eee !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* ==================== Modelos de contrato em destaque ==================== */
.tpl-c1{--tpl:#0d6ee6;--tpl-bg:#e8f1fd;--tpl-ink:#0a4fa8}
.tpl-c2{--tpl:#1a8f5a;--tpl-bg:#e6f6ee;--tpl-ink:#0f6b42}
.tpl-c3{--tpl:#b8620d;--tpl-bg:#fdf0e2;--tpl-ink:#8a4708}
.tpl-c4{--tpl:#7b3fbf;--tpl-bg:#f1eaFB;--tpl-ink:#5b2b91}
.tpl-c5{--tpl:#0a8ba0;--tpl-bg:#e2f5f8;--tpl-ink:#076a7a}
.tpl-c6{--tpl:#c0396b;--tpl-bg:#fce9f0;--tpl-ink:#94284f}
/* etiqueta do modelo */
.tpl-chip{display:inline-flex;align-items:center;gap:7px;padding:3px 11px 3px 8px;border-radius:999px;
  background:var(--tpl-bg,#eef2f8);color:var(--tpl-ink,#4a5d78);border:1px solid color-mix(in srgb,var(--tpl,#c9d4e4) 35%,transparent);
  font-size:11.5px;font-weight:700;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tpl-chip i{width:8px;height:8px;border-radius:50%;background:var(--tpl,#9aa9bf);flex:none}
.tpl-chip.tpl-none{background:#fdecea;color:#a8231b;border-color:#f1c3be}
.doc-tpl{display:block;margin:4px 0 2px}
/* escolha do modelo no novo contrato */
.tpl-pick{background:#f5f8fd;border:1px solid #dbe6f5;border-radius:14px;padding:16px 18px}
.tpl-pick-head h3{margin:0 0 2px;font-size:15px;color:#0f1c33}
.tpl-pick-head small{display:block;color:#5b6b85;font-size:12.5px;margin-bottom:10px}
.tpl-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.tpl-card-pick{position:relative;display:block;cursor:pointer;background:#fff;border:2px solid #e3e8f0;border-left:6px solid var(--tpl,#c9d4e4);
  border-radius:12px;padding:14px 16px 12px 18px;transition:all .15s}
.tpl-card-pick:hover{border-color:var(--tpl,#9fc4f5);box-shadow:0 6px 18px rgba(20,40,70,.1);transform:translateY(-1px)}
.tpl-card-pick input{position:absolute;opacity:0;pointer-events:none}
.tpl-card-pick.sel{border-color:var(--tpl);background:var(--tpl-bg);box-shadow:0 6px 20px color-mix(in srgb,var(--tpl) 22%,transparent)}
.tpl-card-pick strong{display:block;font-size:14.5px;color:#0f1c33;padding-right:26px;line-height:1.3}
.tpl-card-pick small{display:block;margin-top:4px;font-size:12.5px;color:#5b6b85;line-height:1.45}
.tpl-mark{position:absolute;top:12px;right:12px;width:20px;height:20px;border-radius:50%;border:2px solid #cfdcee;background:#fff;transition:all .15s}
.tpl-card-pick.sel .tpl-mark{border-color:var(--tpl);background:var(--tpl)}
.tpl-card-pick.sel .tpl-mark::after{content:"✓";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:800}
.tpl-tags{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.tpl-tags em{font-style:normal;font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  background:color-mix(in srgb,var(--tpl,#9aa9bf) 14%,transparent);color:var(--tpl-ink,#4a5d78);padding:2px 8px;border-radius:999px}
/* cartões da aba Modelos */
.tpl-card{border-left:6px solid var(--tpl,#c9d4e4)}
.tpl-card h4{color:var(--tpl-ink,#0f1c33)}

/* Indicação de campo vindo do cadastro do profissional */
.from-reg{display:block;margin-top:3px;font-style:normal;font-size:11px;font-weight:600;color:var(--ok-ink)}
.from-reg.none{color:#9aa9bf;font-weight:500}

/* Subtítulos dos blocos da ficha dentro do contrato */
.doc-body .doc-sub{margin:14px 0 4px;font-size:12.5px;font-family:"Segoe UI",system-ui,sans-serif;
  letter-spacing:.04em;text-transform:uppercase;color:#0a4fa8;border-bottom:1px solid #cfdcee;padding-bottom:3px}
@media print{.doc-body .doc-sub{color:#000;border-color:#666}}

/* Modelo padrão do sistema (protegido) */
.pill.sys{background:#eef2f8;color:#4a5d78;border:1px solid #d6deea;font-size:10.5px;white-space:nowrap}
.tpl-locked{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:#7b8aa3;
  background:#f2f5fa;border:1px dashed #cfdcee;border-radius:8px;padding:5px 10px}
.tpl-sys-note{margin:8px 0 0;font-size:11.5px;line-height:1.45;color:#5b6b85;background:#f2f5fa;border-left:3px solid #9aa9bf;border-radius:0 8px 8px 0;padding:8px 10px}

/* Locais de prestação do contrato: marcação dinâmica (um ou vários) */
.loc-wrap{margin-top:4px}
.loc-wrap h5,.dc-card h5{margin:10px 0 6px;font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:#5b6b85}
.loc-pick{border:1px solid #dfe6f0;border-radius:12px;padding:9px 10px;background:#fbfcfe}
.loc-tools{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}
.loc-tools .loc-find{flex:1 1 130px;min-width:110px;border:1px solid #dfe6f0;border-radius:8px;padding:5px 9px;font-size:12.5px;background:#fff}
.loc-tools .lnk{background:none;border:0;padding:0;font-size:11.5px;font-weight:600;color:#0a4fa8;cursor:pointer}
.loc-tools .lnk:hover{text-decoration:underline}
.loc-chips{display:flex;flex-wrap:wrap;gap:6px;max-height:190px;overflow:auto}
.loc-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid #dfe6f0;border-radius:999px;
  padding:5px 11px;font-size:12.5px;background:#fff;cursor:pointer;transition:background .12s,border-color .12s,color .12s}
.loc-chip input{margin:0;cursor:pointer}
.loc-chip:hover{border-color:#9db8dd}
.loc-chip.sug{border-color:#bcd3f0;background:#f3f8ff}
.loc-chip.on{background:#0a4fa8;border-color:#0a4fa8;color:#fff;font-weight:600}
.loc-chip.on input{accent-color:#fff}
.loc-count{display:block;margin-top:7px;font-size:11.5px;color:#7b8aa3}
.pv-locais{margin:4px 0 0;font-size:12.5px;color:#3d4f6b}

/* Modalidade e horário de atuação por unidade do contrato */
.loc-detalhes{margin-top:10px}
.loc-detalhes h6{margin:0 0 8px;font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;color:#5b6b85;font-weight:700}
.loc-detalhes h6 small{text-transform:none;letter-spacing:0;font-weight:500;color:#8494ad}
.loc-det{display:grid;grid-template-columns:1.1fr 150px 140px 1.3fr auto;gap:8px;align-items:end;
  padding:8px 10px;margin-bottom:6px;background:#fff;border:1px solid #e6ecf4;border-radius:10px}
.loc-det>strong{font-size:12.5px;color:#2b3a52;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-bottom:6px}
.loc-det label{display:flex;flex-direction:column;gap:3px;font-size:11px;color:#7b8aa3;font-weight:600}
.loc-det select,.loc-det input{border:1px solid #dfe6f0;border-radius:8px;padding:5px 8px;font-size:12.5px;background:#fff;color:#243040}
.loc-det .lnk{background:none;border:0;padding:0 0 7px;font-size:11.5px;font-weight:600;color:#0a4fa8;cursor:pointer;white-space:nowrap}
.loc-det .lnk:hover{text-decoration:underline}
@media (max-width:880px){.loc-det{grid-template-columns:1fr;align-items:stretch}.loc-det>strong{white-space:normal}}

/* Unidade pendente de município (veio de importação) */
.pend-aviso{margin-top:6px;font-size:12px;line-height:1.45;color:#8a5a00;background:#fff6e0;
  border:1px solid #f0dca8;border-radius:8px;padding:7px 10px}
.chip-none.pend{background:#fff1cf;color:#8a5a00;border-color:#f0dca8;font-weight:600}
tr.row-pend td{background:#fffaf0}
.req{color:#c0392b;font-weight:700}
.loc-aviso,.scope-aviso{display:block;margin-top:7px;font-size:11.5px;line-height:1.45;color:#8a5a00;
  background:#fff6e0;border:1px solid #f0dca8;border-radius:8px;padding:6px 9px}

/* Dica sob o campo em edição (CEP e banco) */
.pf-dica{display:block;margin-top:5px;font-size:11.5px;line-height:1.4;color:#5b6b85}

/* Painel do profissional: a barra de ações sai de cena ao rolar, para não
   disputar o topo com o menu de seções (que é o que fica fixo). */
.detail-top.pf-top{position:sticky;top:0;z-index:6;backdrop-filter:blur(14px);background:rgba(244,247,251,.94)}

/* Faixas de preenchimento: <50% vermelho · 50–89% amarelo · 90–99% verde · 100% verde com estrela */
.gauge-good .gauge-bar i{background:var(--ok-line)} .gauge-good span{color:var(--ok-ink)}
.people-table tbody tr.row-good{background:var(--ok-bg);border-left-color:var(--ok-line)}
.people-table tbody tr.row-good:hover{background:#dcf1e5}
.kpi-mini.gauge-good strong{color:var(--ok-ink)}
.pf-hero.pf-good{background:linear-gradient(135deg,#0f3a26,#166b41)}
.pf-ring.gauge-good{color:#4fdd9a}
.pf-alert.gauge-good{background:var(--ok-bg);border-color:#b6e5cb;color:var(--ok-ink)}
/* O 100% ganha destaque próprio: estrela e um brilho dourado no anel */
.gauge-full span{font-weight:700}
.pf-ring.gauge-full{color:#ffd45e}
.pf-ring.gauge-full span{font-size:26px;line-height:1;color:#ffd45e;text-shadow:0 0 14px rgba(255,212,94,.55)}
.people-table tbody tr.row-full .gauge span{letter-spacing:.02em}

/* Locais dentro da barra lateral do contrato: coluna estreita, tudo empilhado */
.dc-side .loc-pick{padding:10px}
.dc-side .loc-chips{max-height:230px}
.dc-side .loc-chip{max-width:100%}
.dc-side .loc-chip span{white-space:normal;overflow-wrap:anywhere;line-height:1.35}
.dc-side .loc-tools{gap:6px}
.dc-side .loc-tools .loc-find{flex:1 1 100%}
.dc-side .loc-det{grid-template-columns:1fr;gap:7px;align-items:stretch;padding:10px}
.dc-side .loc-det>strong{white-space:normal;overflow-wrap:anywhere;padding-bottom:2px;line-height:1.35;
  border-bottom:1px solid #eef2f8;margin-bottom:2px}
.dc-side .loc-det .lnk{padding:2px 0;text-align:left}
.dc-side .loc-det select,.dc-side .loc-det input{width:100%}
.dc-side .loc-detalhes h6{line-height:1.4}

/* Nomes longos de unidade não podem espremer os campos em nenhuma largura */
.loc-det>strong{min-width:0}
.loc-det label{min-width:0}
.loc-chip span{overflow-wrap:anywhere}

/* Aviso de que o texto pertence só a este contrato */
.dc-escopo{margin:0 0 10px;font-size:12.5px;line-height:1.5;color:#2e5b8a;background:#eef5ff;
  border:1px solid #cfe0f7;border-left:3px solid #0d6ee6;border-radius:0 10px 10px 0;padding:9px 12px}

/* Aviso de pendências: título em uma linha, pendências abaixo, sem se colarem */
.pf-alert{display:block;padding:15px 18px}
.pf-alert-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.pf-alert-head strong{font-size:14.5px}
.pf-alert-head .req{font-weight:700;font-size:13px}
.pf-alert-head small{font-size:12.5px;opacity:.8}
.pf-missing-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.pf-missing-list .chip{cursor:pointer;background:rgba(255,255,255,.75);border:1px solid rgba(0,0,0,.09)}
.pf-missing-list .chip:hover{background:#fff;box-shadow:0 2px 6px rgba(20,40,80,.12)}
.pf-missing-list .chip.req{font-weight:700}

/* Histórico ocupa a largura toda do painel, com altura limitada */
.pf-card-wide{grid-column:1/-1}
.pf-history{max-height:360px;overflow:auto}
.pf-card-wide .hist-table{width:100%}
.pf-card-wide .hist-table td.old,.pf-card-wide .hist-table td.new{max-width:none;white-space:normal;overflow-wrap:anywhere;text-overflow:clip}
.pf-card-wide .hist-table th:first-child,.pf-card-wide .hist-table td:first-child{white-space:nowrap;width:1%}
.pf-history table thead th{position:sticky;top:0;background:#f7f9fc;z-index:1}

/* Atuação vazia ao gerar contrato */
.loc-vazio{margin:0;font-size:12.5px;line-height:1.5;color:#8a5a00;background:#fff6e0;
  border:1px solid #f0dca8;border-radius:10px;padding:9px 11px}
.loc-wrap h5 small{text-transform:none;letter-spacing:0;font-weight:500;color:#8494ad}

/* Declaração de "não possui convênio / não possui contrato" */
.btn.declarar{margin-top:10px}
.chip.declarado{background:var(--ok-bg);border:1px solid #b6e5cb;color:var(--ok-ink);font-weight:600}
.empty-state.declarado-box{background:var(--ok-bg);border:1px solid #b6e5cb;color:var(--ok-ink)}
.empty-state.declarado-box small{display:block;margin-top:5px;opacity:.85}
.pf-declarar{display:flex;justify-content:flex-start}

/* ============================================================
   Importação inteligente: botão-lente, animação e relatórios
   ============================================================ */
.si-wrap{display:flex;flex-direction:column;align-items:center;gap:18px;padding:6px 0 30px;justify-content:flex-start}
.si-wrap.si-over .si-lens{transform:scale(1.06)}
.si-wrap.si-over::after{content:"Solte os arquivos aqui";position:fixed;inset:auto 0 34px 0;text-align:center;
  font-weight:700;color:#0a4fa8;z-index:120}

.si-stage{display:flex;flex-direction:column;align-items:center;gap:14px}
.si-lens{position:relative;width:220px;height:220px;border:0;padding:0;border-radius:50%;cursor:pointer;background:none;
  transition:transform .35s cubic-bezier(.22,1,.36,1);filter:drop-shadow(0 22px 34px rgba(15,30,60,.28))}
.si-lens:hover{transform:scale(1.03)}
.si-lens:active{transform:scale(.98)}
.si-stage[data-modo="lendo"] .si-lens{cursor:progress}

/* anéis metálicos */
.si-ring{position:absolute;border-radius:50%;inset:0;
  background:conic-gradient(#f4f7fb,#8e99ab,#e9edf3,#5d6879,#dfe5ee,#7c8798,#f4f7fb,#6f7a8c,#f4f7fb)}
.si-r1{inset:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.7)}
.si-r2{inset:12px;background:conic-gradient(#cfd6e0,#5b6675,#eef1f6,#414a58,#d6dce5,#69737f,#cfd6e0)}
.si-glass{position:absolute;inset:26px;border-radius:50%;overflow:hidden;
  background:radial-gradient(circle at 50% 58%,#2a3240 0%,#141a24 42%,#080b11 72%,#03050a 100%);
  box-shadow:inset 0 6px 22px rgba(255,255,255,.14),inset 0 -12px 26px rgba(0,0,0,.75)}
.si-core{position:absolute;left:50%;top:52%;width:34%;height:34%;transform:translate(-50%,-50%);border-radius:50%;
  background:radial-gradient(circle,#ffffff 0%,#dbe6f5 32%,#7f93b4 62%,rgba(60,80,110,0) 78%);
  transition:transform .5s ease,opacity .4s ease}
.si-halo{position:absolute;left:50%;top:52%;width:52%;height:52%;transform:translate(-50%,-50%);border-radius:50%;
  border:1.5px solid rgba(215,232,255,.85);box-shadow:0 0 18px rgba(180,215,255,.65),inset 0 0 12px rgba(180,215,255,.4)}
.si-sheen{position:absolute;left:10%;top:6%;width:64%;height:42%;border-radius:50%;
  background:linear-gradient(180deg,rgba(255,255,255,.34),rgba(255,255,255,0));filter:blur(2px)}

/* respiração no repouso */
@keyframes si-respira{0%,100%{opacity:.85;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}}
.si-stage:not([data-modo="lendo"]) .si-core{animation:si-respira 3.4s ease-in-out infinite}
.si-stage:not([data-modo="lendo"]) .si-halo{animation:si-respira 3.4s ease-in-out infinite .3s}

/* arcos: só aparecem enquanto trabalha */
.si-arcs{position:absolute;inset:0;width:100%;height:100%;opacity:0;transform:scale(.72);
  transition:opacity .45s ease,transform .55s cubic-bezier(.22,1,.36,1);pointer-events:none}
.si-arcs path{fill:none;stroke:#c9d4e4;stroke-width:7;stroke-linecap:round;
  filter:drop-shadow(0 0 5px rgba(190,215,255,.55))}
.si-arc-a{transform-origin:100px 100px}
.si-arc-b{transform-origin:100px 100px}
@keyframes si-gira{to{transform:rotate(360deg)}}
@keyframes si-gira-inv{to{transform:rotate(-360deg)}}
.si-stage[data-modo="lendo"] .si-arcs{opacity:1;transform:scale(1)}
.si-stage[data-modo="lendo"] .si-arc-a{animation:si-gira 1.5s linear infinite}
.si-stage[data-modo="lendo"] .si-arc-b{animation:si-gira-inv 1.9s linear infinite}
.si-stage[data-modo="lendo"] .si-core{transform:translate(-50%,-50%) scale(.45);opacity:.5}
.si-stage[data-modo="lendo"] .si-halo{opacity:0}
.si-stage[data-modo="lendo"] .si-ring{animation:si-gira 9s linear infinite}
.si-stage[data-modo="lendo"] .si-r2{animation:si-gira-inv 6s linear infinite}

/* legenda sob o botão */
.si-under{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center}
.si-doc-icon svg{width:30px;height:30px;fill:#5b6b85}
.si-under strong{font-size:16px;color:#1f2a3a}
.si-under small{font-size:12.5px;color:#7b8aa3}

/* passos do processamento */
.si-passos{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;max-width:780px}
.si-passo{display:flex;align-items:center;gap:7px;font-size:12.5px;color:#8494ad;
  background:#fff;border:1px solid #e6ecf4;border-radius:999px;padding:6px 13px;transition:all .3s}
.si-passo i{width:8px;height:8px;border-radius:50%;background:#dfe6f0;transition:all .3s}
.si-passo.ativo{color:#0a4fa8;border-color:#9fc4f5;box-shadow:0 0 0 3px rgba(13,110,230,.1)}
.si-passo.ativo i{background:#0d6ee6;box-shadow:0 0 8px rgba(13,110,230,.7)}
.si-passo.feito{color:#0f7a45;border-color:#b6e5cb}
.si-passo.feito i{background:#3fbf7f}

/* relatórios */
.si-resultados{display:flex;flex-direction:column;gap:16px;width:100%;max-width:1000px}
.si-card{background:#fff;border:1px solid #e3e8f0;border-radius:16px;padding:18px 20px;
  box-shadow:0 10px 26px -22px rgba(20,40,80,.5);animation:si-entra .45s cubic-bezier(.22,1,.36,1) both}
@keyframes si-entra{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.si-card.si-feito{border-color:#b6e5cb;background:linear-gradient(#f4fbf7,#fff)}
.si-card.si-erro{border-color:#f1c3be;background:linear-gradient(#fdf3f2,#fff)}
.si-card-head{display:flex;align-items:flex-start;gap:13px;margin-bottom:14px}
.si-tipo-icone{font-size:26px;line-height:1}
.si-card-head h3{margin:2px 0 0;font-size:17px;color:#1f2a3a}
.si-arquivo{font-size:12px;color:#8494ad;display:flex;align-items:center;gap:7px}
.si-ext{background:#eef2f8;border-radius:5px;padding:1px 6px;font-weight:700;font-size:10.5px;color:#5b6b85}
.si-selo{margin-left:auto;background:var(--ok-bg);color:var(--ok-ink);border:1px solid #b6e5cb;
  border-radius:999px;padding:5px 12px;font-size:12px;font-weight:700;white-space:nowrap}
.si-conf{display:flex;align-items:center;gap:9px;margin-top:6px}
.si-conf-bar{display:block;width:110px;height:5px;border-radius:3px;background:#eef2f8;overflow:hidden;flex-shrink:0}
.si-conf-bar i{display:block;height:100%;background:linear-gradient(90deg,#0d6ee6,#3fbf7f);
  animation:si-cresce .8s cubic-bezier(.22,1,.36,1) both}
@keyframes si-cresce{from{width:0}}
.si-conf small{font-size:11.5px;color:#8494ad}

.si-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:12px}
.si-kpi{background:#f7f9fc;border:1px solid #eef2f8;border-radius:12px;padding:11px 13px}
.si-kpi strong{display:block;font-size:20px;color:#1f2a3a;line-height:1.2}
.si-kpi small{font-size:11.5px;color:#7b8aa3}
.si-kpi.tom-ok{background:var(--ok-bg);border-color:#b6e5cb}.si-kpi.tom-ok strong{color:var(--ok-ink)}
.si-kpi.tom-alerta{background:var(--warn-bg);border-color:#f2d79c}.si-kpi.tom-alerta strong{color:var(--warn-ink)}
.si-kpi.tom-destaque{background:#eef5ff;border-color:#cfe0f7}.si-kpi.tom-destaque strong{color:#0a4fa8}

.si-aviso{margin:0 0 12px;font-size:12.5px;line-height:1.5;color:#8a5a00;background:#fff6e0;
  border:1px solid #f0dca8;border-radius:10px;padding:9px 12px}
.si-tabela h4{margin:4px 0 8px;font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:#5b6b85}
.si-tabela .table-wrap{max-height:320px;overflow:auto}
.si-restantes{display:block;margin-top:6px;font-size:11.5px;color:#8494ad}
.si-previa{margin-top:12px}
.si-previa summary{cursor:pointer;font-size:12.5px;font-weight:600;color:#0a4fa8}
.si-previa .dc-preview{max-height:340px;overflow:auto;margin-top:10px}

.si-pergunta{margin-top:15px;padding-top:14px;border-top:1px dashed #e3e8f0}
.si-pergunta p{margin:0 0 11px;font-size:14.5px;font-weight:600;color:#1f2a3a}
.si-acoes{display:flex;flex-wrap:wrap;align-items:flex-end;gap:9px}
.si-campo{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:#7b8aa3;font-weight:600}
.si-campo input{border:1px solid #d6deea;border-radius:9px;padding:8px 10px;font:inherit;font-size:13.5px;min-width:210px}
.si-resultado{margin-top:14px;padding:11px 13px;background:var(--ok-bg);border:1px solid #b6e5cb;
  border-radius:10px;color:var(--ok-ink);font-weight:600;font-size:13.5px}

@media(max-width:700px){.si-lens{width:170px;height:170px}.si-kpis{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}}


/* Relatório de impostos e encargos */
.tax-chips{display:flex;flex-wrap:wrap;gap:9px;margin:12px 0}
.tax-chip{display:flex;flex-direction:column;align-items:flex-start;gap:2px;cursor:pointer;
  background:#fff;border:1px solid #e3e8f0;border-radius:12px;padding:9px 14px;transition:all .15s}
.tax-chip strong{font-size:12px;letter-spacing:.06em;color:#5b6b85}
.tax-chip span{font-size:16px;font-weight:700;color:#1f2a3a}
.tax-chip:hover{border-color:#9fc4f5}
.tax-chip.on{background:#0d6ee6;border-color:#0d6ee6}
.tax-chip.on strong,.tax-chip.on span{color:#fff}


/* Impostos dentro da prestação de contas */
.pj-tax-box h5{margin:14px 0 8px;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:#5b6b85}
.pj-tax-import{background:#f7f9fc;border:1px solid #eef2f8;border-radius:12px;padding:10px 12px;margin-bottom:6px}
.pj-tax-import h5{margin-top:2px}
.pj-tax-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.pj-tax-item{background:#fff;border:1px solid #e6ecf4;border-radius:11px;padding:9px 11px}
.pj-tax-item.tem{border-color:#b6e5cb;background:#f7fcf9}
.pj-tax-item label{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:#5b6b85;font-weight:600}
.pj-tax-item input{border:1px solid #d6deea;border-radius:8px;padding:6px 9px;font:inherit;font-size:13.5px;text-align:right}
.pj-tax-item .pj-tax-base{margin-top:6px}
.pj-tax-base label{color:#8494ad;font-weight:500}
.pj-tax-total{display:block;margin-top:6px;font-size:11px;color:#0f7a45;font-weight:600}
.pend-ok{margin:10px 0;font-size:12.5px;line-height:1.45;color:var(--ok-ink);background:var(--ok-bg);
  border:1px solid #b6e5cb;border-radius:8px;padding:8px 11px}

/* Regra do fluxo, explicada onde ela age */
.pf-regra{margin:0 0 10px;font-size:12.5px;line-height:1.45;color:#5b6b85;background:#f7f9fc;
  border:1px solid #eef2f8;border-radius:9px;padding:8px 11px}
.si-regra{margin:0 0 12px;font-size:12.5px;line-height:1.5;color:#2e5b8a;background:#eef5ff;
  border:1px solid #cfe0f7;border-radius:10px;padding:9px 12px}

/* Ações da importação: cada uma com identidade própria */
.si-opcoes{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;margin:10px 0}
.si-opcao{display:flex;align-items:flex-start;gap:11px;text-align:left;cursor:pointer;
  background:#fff;border:1.5px solid #e3e8f0;border-radius:13px;padding:12px 14px;
  font:inherit;transition:transform .12s,box-shadow .15s,border-color .15s}
.si-opcao:hover{transform:translateY(-1px);box-shadow:0 8px 18px -12px rgba(20,40,80,.5)}
.si-opcao-icone{font-size:20px;line-height:1.2;flex-shrink:0}
.si-opcao-texto{display:flex;flex-direction:column;gap:3px;min-width:0}
.si-opcao-texto strong{font-size:14px;color:#1f2a3a;line-height:1.3}
.si-opcao-texto small{font-size:11.5px;line-height:1.45;color:#7b8aa3}
.si-opcao.tipo-cadastro{border-color:#cfe0f7;background:linear-gradient(#f6faff,#fff)}
.si-opcao.tipo-cadastro:hover{border-color:#0d6ee6}
.si-opcao.tipo-cadastro .si-opcao-texto strong{color:#0a4fa8}
.si-opcao.tipo-prestacao{border-color:#b6e5cb;background:linear-gradient(#f5fbf8,#fff)}
.si-opcao.tipo-prestacao:hover{border-color:#0f7a45}
.si-opcao.tipo-prestacao .si-opcao-texto strong{color:#0f7a45}
.si-opcao.tipo-ambos{border-color:#e2d3f5;background:linear-gradient(#faf7fe,#fff)}
.si-opcao.tipo-ambos:hover{border-color:#7a4fd0}
.si-opcao.tipo-ambos .si-opcao-texto strong{color:#5b32a8}
.si-campo-comp{margin-bottom:4px}

/* Coluna de impostos na lista do mês */
.pj-table .tx-ret{color:#8a5a00}

/* Documento do mês dentro da prestação */
.pj-doc-box{background:#f7f9fc;border:1px solid #eef2f8;border-radius:13px;padding:13px 15px}
.pj-doc-etapas{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:9px;margin-bottom:12px}
.pj-etapa{display:flex;align-items:flex-start;gap:9px;background:#fff;border:1px solid #e6ecf4;border-radius:11px;padding:9px 12px}
.pj-etapa.ok{border-color:#b6e5cb;background:var(--ok-bg)}
.pj-etapa strong{display:block;font-size:13px;color:#1f2a3a}
.pj-etapa small{font-size:11.5px;color:#7b8aa3}
.et-ok{color:#0f7a45;font-weight:800;font-size:16px;line-height:1.3}
.et-falta{color:#c9d2df;font-weight:800;font-size:16px;line-height:1.3}
.pj-doc-arquivo{margin-bottom:11px}
.pj-doc-tem,.pj-doc-vazio{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid #e6ecf4;
  border-radius:11px;padding:11px 13px}
.pj-doc-tem{border-color:#b6e5cb}
.pj-doc-tem a{margin-left:auto;flex-shrink:0}
.pj-doc-ic{font-size:22px;line-height:1}
.pj-doc-tem strong,.pj-doc-vazio strong{display:block;font-size:13.5px;color:#1f2a3a}
.pj-doc-tem small,.pj-doc-vazio small{font-size:11.5px;color:#7b8aa3}
.pj-anexar{cursor:pointer}
.pj-lendo{margin-top:11px;font-size:12.5px;color:#0a4fa8;background:#eef5ff;border:1px solid #cfe0f7;
  border-radius:9px;padding:9px 12px}
.pj-leitura{margin-top:11px;background:#fff;border:1px solid #b6e5cb;border-radius:11px;padding:11px 13px}
.pj-leitura.vazio{border-color:#f0dca8;background:#fff6e0;color:#8a5a00;font-size:12.5px}
.pj-leitura h5{margin:0 0 8px;font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:#5b6b85}
.pj-leitura table{font-size:12.5px}

/* Link de envio */
.pj-link-box{display:flex;gap:8px;align-items:stretch;margin:4px 0 10px}
.pj-link-box .pj-link{flex:1;min-width:0;border:1px solid #d6deea;border-radius:10px;padding:11px 13px;
  font:inherit;font-size:13px;background:#f7f9fc;color:#243040}
.pj-link-box .btn{flex-shrink:0;padding-left:20px;padding-right:20px}
.pj-link-box .btn.copiado{background:#0f7a45;border-color:#0f7a45}
.pj-link-extra{display:flex;gap:8px;flex-wrap:wrap}
.pj-link-nota{margin:12px 0 0;font-size:12px;color:#7b8aa3;line-height:1.5}
.pill.ok{background:var(--ok-bg);color:var(--ok-ink);border:1px solid #b6e5cb}

/* Competência ainda sem valores lançados */
.pj-vazio-aviso{display:flex;flex-direction:column;gap:5px;margin:12px 0;padding:12px 14px;
  background:#fff6e0;border:1px solid #f0dca8;border-radius:11px;color:#8a5a00;font-size:12.5px;line-height:1.5}
.pj-vazio-aviso strong{font-size:13.5px}
.pj-outras{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;align-items:center}
.pj-outra{background:#fff;border:1px solid #e6d3a8;border-radius:999px;padding:5px 12px;cursor:pointer;
  font:inherit;font-size:12px;font-weight:600;color:#8a5a00;transition:all .15s}
.pj-outra:hover{background:#8a5a00;border-color:#8a5a00;color:#fff}
.kpi .kpi-nota{display:block;margin-top:3px;font-size:10.5px;font-style:normal;color:#8494ad;line-height:1.35}

/* Enquanto a busca responde, a lista apenas esmaece — sem redesenhar a tela */
.panel.buscando{position:relative}
.panel.buscando .table-wrap{opacity:.55;transition:opacity .15s}
.panel.buscando::after{content:'';position:absolute;top:10px;right:14px;width:14px;height:14px;
  border:2px solid #cfe0f7;border-top-color:#0d6ee6;border-radius:50%;animation:si-gira .7s linear infinite}

/* Importação: histórico à esquerda do botão */
.si-layout{display:grid;grid-template-columns:290px 1fr;gap:0;align-items:stretch;min-height:560px}
/* Divisória entre o histórico e a área de trabalho: sem ela as duas partes
   pareciam soltas na tela. */
.si-layout>.si-historico{padding-right:22px}
.si-layout>.si-wrap{border-left:2px solid #dbe3ee;padding-left:28px;
  background:linear-gradient(90deg,rgba(13,110,230,.045),rgba(13,110,230,0) 90px)}
@media(max-width:1050px){
  .si-layout{grid-template-columns:1fr;min-height:0}
  .si-historico{order:2;padding-right:0;margin-top:20px}
  .si-layout>.si-wrap{border-left:0;border-bottom:2px solid #dbe3ee;padding-left:0;padding-bottom:22px;background:none}
}
.si-historico{position:sticky;top:0;align-self:start;max-height:calc(100vh - 120px);overflow:auto;
  background:transparent;border:0;border-radius:0;padding:2px 0 14px}
.si-historico h4{display:flex;align-items:center;gap:8px;margin:0 0 11px;font-size:12px;
  letter-spacing:.07em;text-transform:uppercase;color:#5b6b85}
.si-hist-qtd{background:#eef2f8;border-radius:999px;padding:1px 8px;font-size:11px;color:#5b6b85}
.si-hist-vazio{margin:0;font-size:12.5px;line-height:1.55;color:#8494ad}
.si-hist{border:1px solid #e6ecf4;border-radius:12px;padding:10px 11px;margin-bottom:9px;
  background:#fff;transition:border-color .15s,box-shadow .15s}
.si-hist:hover{box-shadow:0 6px 14px -12px rgba(20,40,80,.5)}
.si-hist:hover{border-color:#cfe0f7}
.si-hist.revertida{opacity:.72;background:#f7f8fa}
.si-hist-topo{display:flex;align-items:flex-start;gap:8px}
.si-hist-icone{font-size:16px;line-height:1.2}
.si-hist-nome{font-size:13px;font-weight:700;color:#1f2a3a;line-height:1.3;overflow-wrap:anywhere}
.si-hist.revertida .si-hist-nome{text-decoration:line-through}
.si-hist-meta{margin-top:3px;font-size:11px;color:#8494ad}
.si-hist-resumo{margin-top:6px;font-size:11.5px;line-height:1.45;color:#5b6b85}
.si-hist-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}
.si-hist-tag{background:#eef5ff;border:1px solid #cfe0f7;border-radius:999px;padding:2px 8px;
  font-size:10.5px;font-weight:600;color:#0a4fa8}
.si-hist-revertida{margin-top:7px;font-size:11px;color:#8a5a00;background:#fff6e0;
  border:1px solid #f0dca8;border-radius:7px;padding:4px 8px}
.si-hist-acoes{display:flex;gap:6px;margin-top:9px}
.si-hist-btn{flex:1;text-align:center;text-decoration:none;cursor:pointer;font:inherit;font-size:11.5px;
  font-weight:600;color:#5b6b85;background:#fff;border:1px solid #dfe6f0;border-radius:8px;padding:6px 8px;
  transition:all .15s}
.si-hist-btn:hover{border-color:#9fc4f5;color:#0a4fa8}
.si-hist-btn.desfazer:hover{border-color:#e0574c;color:#c0392b;background:#fdecea}
.si-hist-btn.off{opacity:.45;cursor:not-allowed}
.si-opcao.tipo-modelo{border-color:#d8e3ee;background:linear-gradient(#f8fafc,#fff)}
.si-opcao.tipo-modelo:hover{border-color:#5b6b85}
.si-opcao.tipo-modelo .si-opcao-texto strong{color:#3d4f6b}

/* Lançamento único da folha no fluxo de caixa */
.folha-badge{display:inline-block;margin-left:7px;background:#eef5ff;color:#0a4fa8;border:1px solid #cfe0f7;
  border-radius:999px;padding:1px 8px;font-size:10px;font-weight:700;letter-spacing:.04em;vertical-align:middle}
.folha-nota{margin:10px 0 14px;font-size:12.5px;line-height:1.55;color:#2e5b8a;background:#eef5ff;
  border:1px solid #cfe0f7;border-left:3px solid #0d6ee6;border-radius:0 10px 10px 0;padding:10px 13px}

/* ===== Histórico por campo (painéis de profissional e município) ===== */
.pf-field.pf-editable::after{right:28px}
.pf-hist-btn{position:absolute;top:2px;right:2px;border:0;background:transparent;font-size:12px;line-height:1;padding:3px 4px;border-radius:6px;cursor:pointer;opacity:0;transition:opacity .15s,background .15s;z-index:3}
.pf-field:hover .pf-hist-btn,.pf-hist-btn:focus{opacity:.85}
.pf-hist-btn:hover{background:#e3ecfb;opacity:1}
.pf-field.pf-editing .pf-hist-btn{display:none}

/* ==================== Dashboard ==================== */
.dash-head{margin:0 0 18px}
.dash-head h2{margin:0;font-size:22px;letter-spacing:-.3px;color:var(--text-strong)}
.dash-head p{margin:4px 0 0;font-size:13px;color:var(--muted)}

.dash-sec{margin:0 0 26px}
.dash-sec-head{display:flex;align-items:center;gap:12px;margin:0 0 12px}
.dash-sec-head h3{margin:0;font-size:15px;font-weight:700;color:var(--text-strong);letter-spacing:-.2px}
.dash-sec-head small{display:block;font-size:12px;color:var(--muted);margin-top:2px}

.dico{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex:0 0 34px;
  border-radius:11px;background:var(--surface-3);color:var(--primary-2);font-size:18px}
.dash-sec-head .dico{width:38px;height:38px;flex-basis:38px;font-size:19px;
  background:linear-gradient(135deg,#eaf1ff,#f6f9ff);box-shadow:inset 0 0 0 1px #dde7f8}

.dcard-row{display:grid;gap:14px}
.dcard-row.main{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.dcard-row.sub{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));margin-top:14px}
.dcard-row.venc-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}

.dcard{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:16px;
  padding:16px 17px;box-shadow:var(--shadow-sm);overflow:hidden;transition:transform .16s,box-shadow .16s,border-color .16s}
.dcard::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--primary-3);opacity:.85}
.dcard header{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.dcard header span{font-size:12px;font-weight:650;color:var(--muted);letter-spacing:.02em;text-transform:uppercase}
.dcard strong{display:block;font-size:26px;font-weight:750;letter-spacing:-.6px;color:var(--text-strong);line-height:1.1}
.dcard em{display:block;margin-top:6px;font-size:11.5px;font-style:normal;color:var(--muted-2)}
.dcard.clickable{cursor:pointer}
.dcard.clickable:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--line-strong)}
.dcard.mini strong{font-size:20px}
.dcard.mini .dico{width:30px;height:30px;flex-basis:30px;font-size:16px}

.dcard.rec::before{background:var(--green)}
.dcard.rec .dico{background:#e7f6ee;color:var(--green)}
.dcard.rec strong{color:#186b49}
.dcard.desp::before{background:var(--orange)}
.dcard.desp .dico{background:#fdefe4;color:var(--orange)}
.dcard.desp strong{color:#a94d18}
.dcard.saldo::before{background:var(--primary-2)}
.dcard.saldo .dico{background:#e9efff;color:var(--primary-2)}
.dcard.saldo.pos strong{color:#186b49}
.dcard.saldo.neg strong{color:var(--red)}
.dcard.danger::before{background:var(--red)}
.dcard.danger .dico{background:#fdeaea;color:var(--red)}
.dcard.danger strong{color:var(--red)}
.dcard.warn::before{background:var(--yellow)}
.dcard.warn .dico{background:#fdf3dd;color:#96690a}
.dcard.crit::before{background:var(--orange)}
.dcard.crit .dico{background:#fdefe4;color:var(--orange)}
.dcard.crit strong{color:#a94d18}
.dcard.ok::before{background:var(--green)}
.dcard.ok .dico{background:#e7f6ee;color:var(--green)}
.dcard.ok60::before{background:#3f8f7a}
.dcard.ok60 .dico{background:#e6f4f0;color:#2f7a66}
.dcard.total::before{background:var(--primary)}
.dcard.total .dico{background:#e9eefb;color:var(--primary)}
.dcard.venc strong{font-size:30px}
.dcard.venc.zero{opacity:.62}
.dcard.venc.zero strong{color:var(--muted-2)}

/* gráfico receita × despesa */
.graf-panel{margin-top:16px;padding:18px 20px 14px}
.graf-head h4{margin:0 0 4px;font-size:13.5px;font-weight:700;color:var(--text-strong)}
.graf-wrap{width:100%;overflow-x:auto;padding-bottom:6px}
.graf{display:block;flex:0 0 auto}
.graf .gx{stroke:var(--line);stroke-width:1;stroke-dasharray:3 4}
.graf .gbase{stroke:var(--line-strong);stroke-width:1.2}
.graf .gt{font-size:11px;fill:var(--muted-2);text-anchor:end}
.graf .gl{font-size:12px;fill:var(--muted);text-anchor:middle;font-weight:600}
.graf .gr{font-size:11.5px;text-anchor:middle;font-weight:700}
.graf .vazio{fill:var(--line-strong);opacity:.7}
.graf .gr.pos{fill:#186b49}
.graf .gr.neg{fill:var(--red)}
.graf .gb-rec{fill:#2f9e6f}
.graf .gb-desp{fill:#e08b4a}
.graf .gcol:hover .gb-rec{fill:#1f8a5d}
.graf .gcol:hover .gb-desp{fill:#cf7733}
.graf-leg{display:flex;gap:16px;flex-wrap:wrap;margin-top:8px;font-size:11.5px;color:var(--muted)}
.graf-leg .lg{display:inline-flex;align-items:center;gap:6px}
.graf-leg .lg::before{content:"";width:11px;height:11px;border-radius:3px;background:var(--muted-2)}
.graf-leg .lg.rec::before{background:#2f9e6f}
.graf-leg .lg.desp::before{background:#e08b4a}
.graf-leg .lg.res::before{background:transparent;box-shadow:inset 0 0 0 1.5px var(--muted-2)}

.data-table td .pos,.data-table td strong.pos{color:#186b49}

/* filtro de vencimento herdado do dashboard */
.exp-filter{display:flex;align-items:center;gap:12px;margin:0 0 12px;padding:11px 14px;border-radius:13px;
  background:#eef4ff;border:1px solid #d5e2f8}
.exp-filter .ef-ico{font-size:17px}
.exp-filter strong{display:block;font-size:13.5px;color:var(--text-strong)}
.exp-filter small{display:block;font-size:11.5px;color:var(--muted);margin-top:1px}
.exp-filter button{margin-left:auto}
.exp-filter.crit{background:#fdf1e8;border-color:#f3d6bd}
.exp-filter.danger{background:#fdecec;border-color:#f4cfcf}

.venc-chip{display:inline-block;margin-left:7px;padding:1px 7px;border-radius:999px;font-size:10.5px;font-weight:700;white-space:nowrap}
.venc-chip.venc-ok{background:#eaf3ee;color:#2b6b50}
.venc-chip.venc-90{background:#e9f1fb;color:#2858bb}
.venc-chip.venc-30{background:#fdf3dd;color:#8a5f08}
.venc-chip.venc-7{background:#fdeade;color:#a94d18}
.venc-chip.venc-x{background:#fdeaea;color:var(--red)}

@media (max-width:720px){
  .dcard strong{font-size:22px}
  .dcard.venc strong{font-size:24px}
  .dash-head h2{font-size:19px}
}

/* seletor de competência do dashboard: uma barra só, alinhada ao conteúdo */
.dash-period{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;
  margin:0 0 20px;padding:11px 16px;background:var(--surface);border:1px solid var(--line);
  border-radius:14px;box-shadow:var(--shadow-sm)}
.dp-left{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;flex:1 1 auto;min-width:0}
.dp-tit{display:inline-flex;align-items:center;gap:9px;font-size:12px;font-weight:700;
  color:var(--text-strong);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}
.dp-tit .dico{width:30px;height:30px;flex-basis:30px;font-size:16px}
.dash-presets{display:flex;flex-wrap:wrap;gap:6px}
.dp-chip{border:1px solid var(--line-strong);background:var(--surface);color:var(--muted);
  border-radius:999px;padding:5px 13px;font-size:12px;font-weight:650;transition:background .15s,color .15s,border-color .15s}
.dp-chip:hover{background:var(--surface-3);color:var(--text)}
.dp-chip.on{background:var(--primary-2);border-color:var(--primary-2);color:#fff}
.dp-range{display:flex;align-items:center;gap:8px;margin-left:auto}
.dp-range label{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;
  color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.dp-range input[type="month"]{border:1px solid var(--line-strong);border-radius:9px;padding:6px 8px;
  background:var(--surface);font-size:12.5px;color:var(--text);width:130px}
.dp-range input[type="month"]:focus{outline:2px solid var(--primary-3);outline-offset:1px;border-color:var(--primary-3)}
@media (max-width:900px){
  .dash-period{gap:10px 12px}
  .dp-range{margin-left:0;width:100%;flex-wrap:wrap}
  .dp-range input[type="month"]{width:auto;flex:1;min-width:112px}
  .dp-range button{flex:0 0 auto}
}
@media (max-width:520px){
  .dash-period{padding:12px}
  .dp-range label{flex:1 1 100%;flex-direction:column;align-items:stretch;gap:4px}
  .dp-range input[type="month"]{width:100%;min-width:0}
  .dp-range button{width:100%;margin-top:2px}
  .dp-chip{padding:5px 10px;font-size:11.5px}
}

/* ======================================================================
   AEMPRO V5.2 — Painel de auditoria com restauração + horário de acesso
   ====================================================================== */
.aud-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.aud-stat{background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px;position:relative;overflow:hidden}
.aud-stat::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:#8fa3c4;opacity:.55}
.aud-stat small{display:block;font-size:9px;font-weight:800;color:#7b8698;text-transform:uppercase;letter-spacing:.05em}
.aud-stat strong{display:block;margin-top:6px;font-size:20px;letter-spacing:-.02em;color:#182841}
.aud-stat.warn{cursor:pointer;transition:.15s ease}
.aud-stat.warn:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(27,39,68,.1)}
.aud-stat.warn::before{background:var(--red)}
.aud-stat.warn strong{color:#b32626}
.aud-stat.ok::before{background:var(--green)}
.aud-stat.ok strong{color:#1d7a4f}
@media(max-width:900px){.aud-stats{grid-template-columns:repeat(2,1fr)}}

.aud-date{font-size:12px;color:#5b6b85;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.aud-date input{border:1px solid var(--line);border-radius:9px;padding:7px 9px;background:#fff;font-size:12px}

.log-item.clickable{cursor:pointer;transition:.14s ease}
.log-item.clickable:hover{background:#f6f9fe;border-color:#c9d5e8}
.log-kind.delete{background:#ffe9e9;color:#b32626}
.aud-restored{display:inline-flex;align-items:center;margin-left:8px;border-radius:999px;padding:3px 9px;font-size:9px;font-weight:900;background:#e9f7ef;color:#1d7a4f}
.aud-open-hint{display:inline-flex;margin-left:8px;font-size:9px;font-weight:700;color:#94a1b8}
.log-item.clickable:hover .aud-open-hint{color:#2d55b0}

.aud-compare{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:8px 0 4px}
.aud-col{border-radius:13px;padding:12px 13px;border:1px solid var(--line);background:#f8fafd;min-width:0}
.aud-col small{display:block;font-size:8.5px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#7b8698;margin-bottom:5px}
.aud-col strong{display:block;font-size:13px;color:#182841;word-break:break-word}
.aud-col.antes{background:#fff6f0;border-color:#f2ddcb}
.aud-col.antes small{color:#a0662a}
.aud-col.depois{background:#f0f5ff;border-color:#d4e0f5}
.aud-col.depois small{color:#2d55b0}
.aud-col.agora{background:#eefaf3;border-color:#cdebd9}
.aud-col.agora small{color:#1d7a4f}
@media(max-width:700px){.aud-compare{grid-template-columns:1fr}}

.aud-dif td{background:#fff8ec!important}
.aud-dif td:first-child{position:relative}
.aud-dif td:first-child::before{content:"≠";position:absolute;left:-2px;color:#c18d16;font-weight:900}
.aud-free-note{display:flex;align-items:center;gap:8px;margin:10px 0;font-size:11.5px;color:#1d6b47;background:#eafaf1;border:1px solid #c9ecd8;border-radius:10px;padding:9px 12px;font-weight:700}

/* v5.2.1 — selos de login/logout no log de auditoria */
.log-kind.login{background:#e9f7ef;color:#1d7a4f}
.log-kind.login-fail{background:#fff1e5;color:#a64f21}

/* ===== v5.2.2 — Auditoria: linha do tempo compacta ===== */
.aud-feed{position:relative;margin-top:4px}
.aud-day{
  position:sticky;top:0;z-index:3;display:inline-flex;align-items:center;
  margin:14px 0 6px;padding:5px 12px;border-radius:999px;
  background:linear-gradient(135deg,#18366f,#2858bb);color:#fff;
  font-size:10px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;
  box-shadow:0 6px 16px rgba(24,54,111,.22);
}
.aud-row{
  display:grid;grid-template-columns:52px 20px 150px 1fr auto 18px;
  align-items:center;gap:8px;min-height:34px;padding:4px 10px 4px 6px;
  border-radius:10px;cursor:pointer;transition:.13s ease;position:relative;
}
.aud-row:hover{background:#f4f8fe}
.aud-row:hover .aud-go{color:#2d55b0;transform:translateX(2px)}
.aud-time{font-size:10px;font-weight:800;color:#8a95a8;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.aud-row.agrupada .aud-time{font-size:9px}
/* trilho vertical da linha do tempo */
.aud-dot{position:relative;width:10px;height:10px;border-radius:50%;justify-self:center;background:#9ca6b4;box-shadow:0 0 0 3px rgba(156,166,180,.15)}
.aud-dot::before{content:"";position:absolute;left:50%;transform:translateX(-50%);top:-16px;bottom:-16px;width:2px;background:#e6ebf3;z-index:-1}
.aud-dot.change{background:#2d55b0;box-shadow:0 0 0 3px rgba(45,85,176,.15)}
.aud-dot.delete{background:#c22f2f;box-shadow:0 0 0 3px rgba(194,47,47,.15)}
.aud-dot.login{background:#1d7a4f;box-shadow:0 0 0 3px rgba(29,122,79,.15)}
.aud-dot.login-fail{background:#c07020;box-shadow:0 0 0 3px rgba(192,112,32,.16)}
.aud-user{display:inline-flex;align-items:center;gap:7px;min-width:0;font-size:11px;font-weight:800;color:#2c3b58;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aud-user i{
  flex:0 0 22px;width:22px;height:22px;border-radius:8px;display:grid;place-items:center;
  font-style:normal;font-size:8.5px;font-weight:900;color:#244783;
  background:linear-gradient(145deg,#e9effc,#dce6fb);border:1px solid #d6e0f2;
}
.aud-text{min-width:0;font-size:11.5px;color:#3c4c6b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aud-text b{color:#182841}
.aud-mini{font-size:10px;color:#8a95a8}
.aud-mini s{color:#a8231b}
.aud-mini b{color:#0f7a45}
.aud-count{
  flex-shrink:0;border-radius:999px;background:#eef3fc;color:#36558e;
  font-size:9px;font-weight:900;padding:3px 8px;white-space:nowrap;
}
.aud-go{color:#c2cbd9;font-weight:900;font-size:13px;text-align:center;transition:.13s ease}
.aud-go.caret{font-size:10px}
.aud-cluster.aberto>.aud-row.agrupada{background:#f0f5fd;border-radius:10px 10px 0 0}
.aud-cluster.aberto .aud-go.caret{transform:rotate(180deg)}
.aud-sub{
  margin:0 0 4px 26px;padding:2px 0 2px 8px;border-left:2px solid #dbe4f2;
  background:#fafcff;border-radius:0 0 10px 10px;
}
.aud-sub .aud-row{min-height:30px}
.aud-sub .aud-dot::before{display:none}
.aud-sub .aud-dot{width:7px;height:7px}
@media(max-width:900px){
  .aud-row{grid-template-columns:44px 14px 1fr 18px;grid-auto-rows:auto}
  .aud-user{grid-column:3;font-size:10px}
  .aud-text{grid-column:3;grid-row:2;white-space:normal;font-size:11px}
  .aud-count{grid-column:3;grid-row:3;justify-self:start}
  .aud-go{grid-column:4;grid-row:1}
}

/* ===== v5.2.3 — Usuários: solicitações integradas, interruptor de status ===== */
.list-item.dim{opacity:.62}
.list-item.dim:hover{opacity:1}
.list-item.pend{border-left:3px solid var(--yellow);background:#fffdf6}
.u-switch{display:inline-flex;align-items:center;gap:7px;cursor:pointer;user-select:none}
.u-switch input{display:none}
.u-switch i{
  position:relative;width:34px;height:19px;border-radius:999px;background:#cdd5e1;
  transition:.18s ease;flex-shrink:0;
}
.u-switch i::after{
  content:"";position:absolute;top:2.5px;left:3px;width:14px;height:14px;border-radius:50%;
  background:#fff;box-shadow:0 2px 6px rgba(20,30,53,.25);transition:.18s ease;
}
.u-switch input:checked + i{background:#23865c}
.u-switch input:checked + i::after{left:17px}
.u-switch span{font-size:9.5px;font-weight:900;color:#6d7890;min-width:38px}
.u-switch input:checked ~ span{color:#1d7a4f}

/* ===== v5.2.4 — Logomarca real no topo do menu ===== */
.sidebar-brand-logo{
  flex-direction:column;align-items:center;gap:6px;
  padding:10px 6px 20px;text-align:center;
}
.sidebar-logo{
  display:block;width:100%;max-width:168px;height:auto;margin:0 auto;
  filter:drop-shadow(0 8px 20px rgba(0,0,0,.35));
}
.sidebar-brand-logo small{
  font-size:8.5px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:#7f8daa;
}

/* ======================================================================
   AEMPRO V5.3 — Fluxo de caixa contábil
   ====================================================================== */
/* topo: resumo + botões */
.fx-top{display:flex;align-items:stretch;justify-content:space-between;gap:14px;flex-wrap:wrap}
.fx-strip{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:8px;flex:1;min-width:0}
.fx-mini{background:#fff;border:1px solid var(--line);border-radius:13px;padding:10px 12px;position:relative;overflow:hidden}
.fx-mini::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#8fa3c4}
.fx-mini small{display:block;font-size:8.5px;font-weight:800;color:#7b8698;text-transform:uppercase;letter-spacing:.05em}
.fx-mini strong{display:block;margin-top:4px;font-size:14.5px;color:#182841;letter-spacing:-.02em}
.fx-mini.desp::before{background:var(--red)}.fx-mini.desp strong{color:#b32626}
.fx-mini.rec::before{background:var(--green)}.fx-mini.rec strong{color:#1d7a4f}
.fx-mini.ok::before{background:#4c69b2}
.fx-mini strong.pos{color:#1d7a4f}.fx-mini strong.neg{color:#b32626}
.fx-cta{display:flex;flex-direction:column;gap:8px;justify-content:center}
@media(max-width:1100px){.fx-strip{grid-template-columns:repeat(2,1fr)}.fx-cta{flex-direction:row}}

/* recorrências aguardando confirmação (virada de ano) */
.fx-pending{margin-top:12px;background:#fff9e9;border:1px solid #f0e0b0;border-radius:14px;padding:12px 14px}
.fx-pending>strong{display:block;font-size:12px;color:#8a6d1d;margin-bottom:8px}
.fx-pending-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px dashed #eadfba;flex-wrap:wrap}
.fx-pending-item small{display:block;color:#95824d;font-size:10px;margin-top:2px}
.fx-pending-item>div:last-child{display:flex;gap:6px}

/* chips de vencimento (painéis discretos) */
.fx-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.fx-chip{
  display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;
  border-radius:999px;padding:7px 12px;font-size:10.5px;font-weight:800;color:#5d687a;cursor:pointer;transition:.14s ease;
}
.fx-chip b{font-size:9px;background:#eef2f7;border-radius:999px;padding:2px 7px;color:#44506a}
.fx-chip:hover{border-color:#c4d0e4;transform:translateY(-1px)}
.fx-chip.on{background:#18366f;border-color:#18366f;color:#fff}
.fx-chip.on b{background:rgba(255,255,255,.18);color:#fff}
.fx-chip.danger{color:#b32626}.fx-chip.danger.on{background:#b32626;border-color:#b32626;color:#fff}
.fx-chip.warn{color:#93690f}.fx-chip.warn.on{background:#c18d16;border-color:#c18d16;color:#fff}
.fx-chip.warn2{color:#a05f18}.fx-chip.warn2.on{background:#bd7a1f;border-color:#bd7a1f;color:#fff}
.fx-chip.ok{color:#1d7a4f}.fx-chip.ok.on{background:#1d7a4f;border-color:#1d7a4f;color:#fff}
.fx-chip.post{color:#6b48ac}.fx-chip.post.on{background:#6b48ac;border-color:#6b48ac;color:#fff}
.fx-chip input{width:52px;border:1px solid var(--line);border-radius:7px;padding:3px 6px;font-size:10.5px;text-align:center;color:#2c3b58}
.fx-chip.on input{border-color:rgba(255,255,255,.4)}

/* feed corrido agrupado por dia */
.fx-feed{display:grid;gap:2px}
.fx-day{
  position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin:12px 0 4px;padding:6px 12px;border-radius:10px;background:linear-gradient(135deg,#f2f6fd,#e9effb);
  border:1px solid #dde6f4;font-size:10.5px;font-weight:900;color:#2c3f66;text-transform:uppercase;letter-spacing:.04em;
}
.fx-day-tot i{font-style:normal;font-size:10px;margin-left:10px;font-weight:800}
.fx-day-tot i.d{color:#b32626}.fx-day-tot i.r{color:#1d7a4f}
.fx-row{
  display:grid;grid-template-columns:14px 150px 1fr auto auto;align-items:center;gap:10px;
  min-height:40px;padding:6px 10px;border-radius:11px;transition:.13s ease;
}
/* v5.8 — cabeçalho do dia: data primeiro, depois o dia da semana e a situação */
.fx-day .fx-day-data{font-size:13px;letter-spacing:0;text-transform:none;color:#182841}
.fx-day .fx-day-sem{font-weight:700;color:#5b6b85;text-transform:none;letter-spacing:0;font-size:11px}
.fx-day .fx-day-rel{display:inline-flex;border-radius:999px;padding:2px 9px;font-size:9.5px;letter-spacing:.03em;background:#e6ecf7;color:#3b4d72}
.fx-day.vencido{background:linear-gradient(135deg,#fdf1f0,#fbe6e4);border-color:#f1c3be}
.fx-day.vencido .fx-day-rel{background:#f6d3cf;color:#a8231b}
.fx-day.hoje .fx-day-rel{background:#fff1d6;color:#8a5200}
.fx-day.futuro .fx-day-rel{background:#e4f6ec;color:#116b3f}
.fx-day-left{display:flex;align-items:center;gap:8px}
.fx-when{display:flex;flex-direction:column;gap:2px;min-width:0}
.fx-when b{font-size:11.5px;color:#182841;white-space:nowrap}
.fx-when .exp-status{margin:0}
/* lista compacta, sem cabeçalho de dia: várias linhas na tela de uma vez */
.fx-feed.compacto{gap:0}
/* colunas fixas: ponto · vencimento · situação · lançamento · valor · ações (tudo alinhado como tabela) */
.fx-feed.compacto .fx-row{min-height:0;padding:3px 8px;border-radius:0;border-bottom:1px solid #eef2f8;gap:8px;grid-template-columns:8px 108px 128px minmax(0,1fr) 112px 236px}
.fx-feed.compacto .fx-row:hover{background:#f6f9fe}
.fx-feed.compacto .fx-head{background:#f2f6fd;border-bottom:1px solid #dde6f4;font-size:9.5px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:#5b6b85;padding:5px 8px;position:sticky;top:0;z-index:2}
.fx-feed.compacto .fx-head:hover{background:#f2f6fd}
.fx-feed.compacto .fx-head .fx-val{color:#5b6b85;font-size:9.5px}
.fx-feed.compacto .fx-head .fx-acts{justify-content:flex-end}
.fx-feed.compacto .fx-data{font-size:11px;color:#182841;white-space:nowrap}
.fx-feed.compacto .fx-data i{font-style:normal;color:#8a95a8;font-weight:600;margin-left:3px}
.fx-feed.compacto .fx-st .exp-status{font-size:9px;padding:2px 7px;white-space:nowrap}
.fx-feed.compacto .fx-main small{display:inline;margin-left:6px}
.fx-feed.compacto .fx-desc strong{font-size:11.5px;max-width:40ch}
.fx-feed.compacto .fx-val{width:112px}
/* ações em 4 colunas fixas: prestações/relação · finalizar/reabrir · editar · excluir */
.fx-feed.compacto .fx-acts{width:236px;display:grid;grid-template-columns:82px 84px 30px 30px;gap:4px;justify-content:end}
.fx-feed.compacto .fx-slot{display:flex}
.fx-feed.compacto .fx-slot .btn{width:100%;justify-content:center}
.fx-feed.compacto .fx-acts .btn.small{padding:3px 6px;font-size:10px;height:24px;line-height:1;white-space:nowrap}
.fx-feed.compacto .fx-head .fx-acts{display:flex}
.fx-feed.compacto .fx-dot{width:7px;height:7px}
@media(max-width:1100px){.fx-feed.compacto .fx-row{grid-template-columns:8px 100px 1fr 100px 200px}.fx-feed.compacto .fx-st{display:none}}
.fx-row:hover{background:#f6f9fe}
.fx-row.paga{opacity:.62}
.fx-row.paga:hover{opacity:1}
.fx-dot{width:9px;height:9px;border-radius:50%;justify-self:center}
.fx-row.desp .fx-dot{background:#c22f2f;box-shadow:0 0 0 3px rgba(194,47,47,.13)}
.fx-row.rec .fx-dot{background:#1d9a5f;box-shadow:0 0 0 3px rgba(29,154,95,.13)}
.fx-main{min-width:0}
.fx-desc{display:flex;align-items:center;gap:6px;min-width:0;flex-wrap:wrap}
.fx-desc strong{font-size:12px;color:#182841;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:52ch}
.fx-main small{display:block;font-size:10px;color:#8a95a8;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fx-val{font-size:12.5px;font-weight:900;white-space:nowrap;text-align:right}
.fx-row.desp .fx-val{color:#b32626}
.fx-row.rec .fx-val{color:#1d7a4f}
.fx-st{white-space:nowrap}
.fx-acts{display:flex;gap:5px;white-space:nowrap}
.fx-parc{
  position:relative;display:inline-flex;border-radius:7px;background:#eef3fc;color:#36558e;
  font-size:8.5px;font-weight:900;padding:3px 7px;cursor:default;
}
.fx-parc i{
  display:none;position:absolute;left:50%;transform:translateX(-50%);top:calc(100% + 4px);z-index:5;
  font-style:normal;background:#18366f;color:#fff;border-radius:8px;padding:5px 9px;white-space:nowrap;
  font-size:9px;box-shadow:0 8px 20px rgba(24,54,111,.3);
}
.fx-parc:hover i{display:block}
.fx-post{display:inline-flex;border-radius:7px;background:#f3eefc;color:#6b48ac;font-size:8.5px;font-weight:900;padding:3px 7px}
@media(max-width:900px){
  .fx-row,.fx-feed.compacto .fx-row{grid-template-columns:12px 1fr auto;grid-auto-rows:auto}
  .fx-feed.compacto .fx-head{display:none}
  .fx-st{grid-column:2}.fx-acts,.fx-feed.compacto .fx-acts{grid-column:2/4;justify-content:flex-end;width:auto}
}

/* formulário */
.fx-tipo-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.fx-seg{display:inline-flex;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.fx-seg-btn{border:0;background:#fff;padding:9px 22px;font-weight:900;font-size:12px;color:#7b8698;cursor:pointer;transition:.15s ease}
.fx-seg-btn.desp.on{background:#fdeaea;color:#b32626}
.fx-seg-btn.rec.on{background:#e7f6ee;color:#1d7a4f}
.fx-form.fx-desp .fx-valor-label input{background:#fff6f6;border-color:#efc9c9}
.fx-form.fx-rec .fx-valor-label input{background:#f2fbf6;border-color:#c4e6d3}
.fx-prorrog{display:block;margin-top:3px;color:#6b48ac;font-weight:800;font-size:10px}
.fx-partner-box{border:1px solid var(--line);border-radius:13px;padding:12px;background:#fafbfe}
.fx-form.fx-desp .fx-partner-box{background:#fefafa}
.fx-form.fx-rec .fx-partner-box{background:#f9fdfb}
.fx-partner-head{display:flex;align-items:baseline;gap:10px;margin-bottom:9px}
.fx-partner-head strong{font-size:12px;color:#303b50}
.fx-partner-grid{display:grid;grid-template-columns:1.5fr 1fr .9fr;gap:10px}
@media(max-width:700px){.fx-partner-grid{grid-template-columns:1fr}}
.fx-ac{position:relative}
.fx-sug{
  position:absolute;left:0;right:0;top:calc(100% + 2px);z-index:20;background:#fff;border:1px solid #cfd9e8;
  border-radius:11px;box-shadow:0 16px 40px rgba(20,30,53,.16);overflow:hidden;max-height:220px;overflow-y:auto;
}
.fx-sug-item{padding:8px 11px;cursor:pointer;border-bottom:1px solid #f0f3f8}
.fx-sug-item:hover{background:#f2f7ff}
.fx-sug-item strong{display:block;font-size:11.5px;color:#182841}
.fx-sug-item small{color:#8a95a8;font-size:9.5px}
.fx-doc-tipo{display:block;margin-top:3px;font-size:9px;font-weight:900;color:#36558e;min-height:12px}
.fx-modo-box{border:1px dashed #cfd9e8;border-radius:13px;padding:11px 13px;background:#f8fafd}
.fx-modo{display:grid;gap:7px}
.fx-radio{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:#2c3b58;flex-wrap:wrap}
.fx-radio input[type=radio]{accent-color:#18366f}
.fx-radio small{font-weight:600;color:#8a95a8}
.fx-check{display:flex;align-items:center;gap:8px;font-size:11.5px;font-weight:600;color:#4a5a78;margin-top:9px}
.fx-check input{accent-color:#18366f;width:auto}

/* combo contábil (busca + adicionar + excluir) */
.fx-combo{position:relative}
.fx-combo-btn{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;
  border:1px solid #dce3ed;border-radius:10px;padding:10px 11px;background:#fff;cursor:pointer;text-align:left;font-size:12px;
}
.fx-combo-btn.despesa{background:#fff6f6;border-color:#efc9c9}
.fx-combo-btn.receita{background:#f2fbf6;border-color:#c4e6d3}
.fx-combo-btn i{font-style:normal;color:#8a95a8;font-size:10px}
.fx-combo-sel{font-weight:700;color:#182841;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fx-combo-sel.muted{color:#9aa5b6;font-weight:600}
.fx-combo-sel.despesa{color:#b32626}
.fx-combo-sel.receita{color:#1d7a4f}
.fx-combo-panel{
  display:none;position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;background:#fff;
  border:1px solid #cfd9e8;border-radius:13px;box-shadow:0 18px 46px rgba(20,30,53,.18);overflow:hidden;
}
.fx-combo.open .fx-combo-panel{display:block}
.fx-combo-add{display:flex;gap:7px;padding:9px;border-bottom:1px solid #eef1f6;background:#fafbfe}
.fx-combo-add input{flex:1;min-width:0;border:1px solid #dce3ed;border-radius:9px;padding:8px 10px;font-size:11.5px;outline:none}
.fx-combo-add input:focus{border-color:#91a7da}
.fx-add-btn{border:0;border-radius:9px;padding:0 13px;background:#18366f;color:#fff;font-weight:800;font-size:11px;cursor:pointer}
.fx-add-btn:hover{background:#244d99}
.fx-combo-list{max-height:230px;overflow-y:auto}
.fx-opt{
  display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 11px;cursor:pointer;
  font-size:11.5px;font-weight:700;color:#2c3b58;border-bottom:1px solid #f2f4f8;
}
.fx-opt.despesa{background:#fff7f7}
.fx-opt.receita{background:#f4fbf7}
.fx-opt:hover{filter:brightness(.96)}
.fx-opt.sel{outline:2px solid #18366f;outline-offset:-2px}
.fx-opt-del{border:0;background:transparent;color:#c66;font-weight:900;font-size:12px;cursor:pointer;padding:2px 5px;border-radius:6px}
.fx-opt-del:hover{background:#ffe3e3;color:#a11}
.fx-opt-empty{padding:12px;font-size:11px;color:#8a95a8;text-align:center}

/* v5.3.1 — período por data e barra de filtros aplicados */
.fx-periodo{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:#5b6b85;font-weight:700;white-space:nowrap}
.fx-periodo input{height:40px;border:1px solid var(--line);border-radius:11px;background:#fff;padding:0 9px;font-size:11.5px;color:var(--text)}
.fx-fbar{
  display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 12px;
  background:#f3f7ff;border:1px solid #d9e4f6;border-radius:12px;padding:8px 12px;
}
.fx-fbar-rot{font-size:9.5px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#5470a5}
.fx-ftag{
  display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid #c9d8ef;border-radius:999px;
  padding:4px 10px;font-size:10.5px;font-weight:800;color:#2c4577;cursor:pointer;transition:.13s ease;
}
.fx-ftag b{color:#8fa3c4;font-size:10px}
.fx-ftag:hover{border-color:#b32626;color:#b32626}
.fx-ftag:hover b{color:#b32626}
.fx-flimpar{
  margin-left:auto;border:1px solid #d5dcea;border-radius:999px;background:#fff;color:#2c3b58;
  font-size:10.5px;font-weight:800;padding:5px 12px;cursor:pointer;transition:.13s ease;
}
.fx-flimpar:hover{border-color:#18366f;background:#18366f;color:#fff}

/* v5.3.2 — painel institucional de vencimentos (compacto) */
.fx-vwrap{display:flex;align-items:stretch;gap:10px;margin-top:12px;flex-wrap:wrap}
.fx-vpanel{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:8px;flex:1;min-width:0}
.fx-vcard{
  display:flex;align-items:center;gap:9px;text-align:left;cursor:pointer;
  background:#fff;border:1px solid var(--line);border-radius:13px;padding:9px 11px;min-height:58px;
  position:relative;overflow:hidden;transition:.15s ease;font:inherit;
}
.fx-vcard::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3.5px;background:#8fa3c4}
.fx-vcard:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(27,39,68,.1)}
.fx-vic{
  flex:0 0 30px;width:30px;height:30px;border-radius:10px;display:grid;place-items:center;
  font-size:14px;background:#f1f4f9;color:#5d687a;
}
.fx-vinfo{min-width:0;display:grid;gap:1px}
.fx-vinfo small{font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#7b8698;white-space:nowrap}
.fx-vinfo strong{font-size:13px;letter-spacing:-.02em;color:#182841;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fx-vinfo em{font-style:normal;font-size:8.5px;color:#95a0b4;white-space:nowrap}
.fx-vcard.danger::before{background:var(--red)}
.fx-vcard.danger .fx-vic{background:#fdeaea;color:#b32626}
.fx-vcard.danger strong{color:#b32626}
.fx-vcard.warn::before{background:var(--yellow)}
.fx-vcard.warn .fx-vic{background:#fdf3d8;color:#93690f}
.fx-vcard.warn strong{color:#93690f}
.fx-vcard.warn2::before{background:var(--orange)}
.fx-vcard.warn2 .fx-vic{background:#fdeee0;color:#a05f18}
.fx-vcard.warn2 strong{color:#a05f18}
.fx-vcard.custom::before{background:#4c69b2}
.fx-vcard.custom .fx-vic{background:#e9f0ff;color:#2d55b0}
.fx-vcard.post::before{background:#6b48ac}
.fx-vcard.post .fx-vic{background:#f3eefc;color:#6b48ac}
.fx-vcard.post strong{color:#6b48ac}
.fx-vcard.on{outline:2px solid #18366f;outline-offset:-2px;background:#f4f8ff}
.fx-vinput{display:inline-flex;align-items:center;gap:5px;font-size:11px!important}
.fx-vinput input{width:48px;border:1px solid var(--line);border-radius:7px;padding:2px 5px;font-size:11px;text-align:center;font-weight:800;color:#2c3b58}
.fx-vseg{
  display:flex;flex-direction:column;gap:4px;justify-content:center;
  background:#fff;border:1px solid var(--line);border-radius:13px;padding:6px;
}
.fx-vseg button{
  border:0;background:transparent;border-radius:9px;padding:7px 16px;font-size:10.5px;font-weight:900;
  color:#5d687a;cursor:pointer;transition:.13s ease;text-align:center;white-space:nowrap;font:inherit;font-size:10.5px;font-weight:900;
}
.fx-vseg button:hover{background:#f1f5fb}
.fx-vseg button.on{background:#18366f;color:#fff;box-shadow:0 5px 14px rgba(24,54,111,.25)}
@media(max-width:1350px){.fx-vpanel{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.fx-vpanel{grid-template-columns:repeat(2,1fr)}.fx-vseg{flex-direction:row;width:100%}}

/* Login: grupo esquerdo mais coeso (mesma distância do lado direito) */
.neo-pros.left figure:nth-child(2){margin-right:-100px}
.neo-pros.left figure:nth-child(3){margin-right:-85px}

/* ===== v5.4 — Lançamento: alinhamento, escolha rápida e anexos em miniatura ===== */
/* As opções viravam grade por causa da regra genérica .form-grid label — aqui voltam a linha */
.form-grid label.fx-radio{display:flex;flex-direction:row;align-items:center;gap:8px;font-size:12px;font-weight:800;color:#2c3b58}
.form-grid label.fx-check{display:flex;flex-direction:row;align-items:center;gap:8px}
.fx-modo{display:flex;flex-wrap:wrap;align-items:center;gap:8px 26px}
.fx-modo .fx-radio input[type=number]{width:58px;border:1px solid var(--line);border-radius:8px;padding:5px 6px;text-align:center;font-weight:800}
.fx-modo .fx-radio input[type=radio]{width:15px;height:15px;flex-shrink:0}
.fx-modo-box{padding:12px 14px}

/* Telinha rápida: Despesa ou Receita? */
.fx-escolha{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fx-escolha-btn{
  display:grid;justify-items:center;gap:7px;padding:24px 16px;border-radius:16px;cursor:pointer;
  font:inherit;text-align:center;transition:.16s ease;border:2px solid;
}
.fx-escolha-btn i{font-style:normal;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font-size:24px;font-weight:900}
.fx-escolha-btn strong{font-size:16px;letter-spacing:-.02em}
.fx-escolha-btn small{font-size:10px;line-height:1.4}
.fx-escolha-btn.desp{background:#fff6f6;border-color:#efc9c9;color:#8a4444}
.fx-escolha-btn.desp i{background:#fdeaea;color:#b32626}
.fx-escolha-btn.desp strong{color:#b32626}
.fx-escolha-btn.rec{background:#f2fbf6;border-color:#c4e6d3;color:#3f7357}
.fx-escolha-btn.rec i{background:#e7f6ee;color:#1d7a4f}
.fx-escolha-btn.rec strong{color:#1d7a4f}
.fx-escolha-btn:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(27,39,68,.14)}
@media(max-width:600px){.fx-escolha{grid-template-columns:1fr}}

/* Anexos: miniaturas lado a lado, quebrando para baixo */
.fx-anexos{border:1px solid var(--line);border-radius:13px;padding:11px 13px;background:#fafbfe}
.fx-anexos-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.fx-anexos-head strong{font-size:12px;color:#303b50}
.fx-anexos-head strong small{font-weight:600;font-size:9.5px}
.fx-thumbs{display:flex;flex-wrap:wrap;gap:10px}
.fx-thumb{position:relative;width:88px;cursor:pointer;text-align:center}
.fx-thumb img{width:88px;height:66px;object-fit:cover;border-radius:9px;border:1px solid var(--line);background:#fff;display:block}
.fx-thumb-ext{display:grid;place-items:center;width:88px;height:66px;border-radius:9px;border:1px solid var(--line);background:#eef2f9;font-weight:900;color:#44599d;font-size:12px}
.fx-thumb small{display:block;font-size:8.5px;color:#7b8698;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fx-thumb:hover img,.fx-thumb:hover .fx-thumb-ext{box-shadow:0 8px 18px rgba(27,39,68,.16)}
.fx-thumb-del{
  position:absolute;top:-7px;right:-7px;width:20px;height:20px;border-radius:50%;border:0;
  background:#b32626;color:#fff;font-size:10px;font-weight:900;cursor:pointer;line-height:1;
  box-shadow:0 3px 8px rgba(0,0,0,.3);
}
.fx-thumb-del:hover{background:#8f1d1d}
.fx-clip{display:inline-flex;border-radius:7px;background:#eef2f9;color:#44599d;font-size:8.5px;font-weight:900;padding:3px 6px}

/* v5.4.1 — ações no cartão do contrato dentro do município */
.cc-actions{display:flex;gap:6px;margin-top:11px;padding-top:10px;border-top:1px dashed #e6ebf3;justify-content:flex-end}

/* v5.4.2 — competência em dois campos: mês + ano */
.fx-comp{display:inline-flex;gap:6px}
.fx-comp select{height:40px;border:1px solid var(--line);border-radius:11px;background:#fff;padding:0 9px;font-size:11.5px;color:var(--text)}
.fx-comp select:last-child{width:78px}

/* v5.5 — selo de imposto consolidado */
.fx-tax-badge{display:inline-flex;border-radius:7px;background:#fdeee0;color:#a05f18;font-size:8px;font-weight:900;padding:3px 6px;letter-spacing:.03em}

/* v5.6 — certidões (CNDs), declarações, função no contrato e prestação do município */
.cnd-head-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.cnd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}
.cnd-card{border:1px solid #e3e8f0;border-left:4px solid #c9d4e4;border-radius:12px;padding:12px 14px;background:#fbfcfe;display:flex;flex-direction:column;gap:8px}
.cnd-card header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.cnd-card header strong{font-size:13px;line-height:1.3}
.cnd-status{flex-shrink:0;padding:3px 9px;border-radius:999px;font-size:10.5px;font-weight:800;background:#eef2f8;color:#4a5d78;white-space:nowrap}
.cnd-card.cnd-ok{border-left-color:var(--ok-line)}.cnd-card.cnd-ok .cnd-status{background:var(--ok-bg);color:var(--ok-ink)}
.cnd-card.cnd-warn{border-left-color:#e0a63a}.cnd-card.cnd-warn .cnd-status{background:#fff1d6;color:#8a5200}
.cnd-card.cnd-crit{border-left-color:#d64545}.cnd-card.cnd-crit .cnd-status{background:#fde8e6;color:#a8231b}
.cnd-card.cnd-info{border-left-color:#0d6ee6}.cnd-card.cnd-info .cnd-status{background:#e6f0ff;color:#0a4fa8}
.cnd-meta{display:flex;flex-direction:column;gap:2px}
.cnd-meta small{color:#6b7a94;font-size:11.5px}
.cnd-meta .cnd-file{font-size:12.5px;font-weight:600;color:#0a4fa8;text-decoration:none;word-break:break-all}
.cnd-meta .cnd-file:hover{text-decoration:underline}
.cnd-warn{color:#a05f18}
.cnd-notes{font-style:italic}
.cnd-req{font-size:12px;color:#5b6b85}
.cnd-toggle{border:1px dashed #c9d4e4;background:#fff;border-radius:999px;padding:4px 10px;font-size:11.5px;font-weight:700;color:#5b6b85;cursor:pointer;font-family:inherit}
.cnd-toggle:hover{border-color:#0d6ee6;color:#0a4fa8}
.cnd-req.on .cnd-toggle{border-style:solid;border-color:#0d6ee6;background:#e6f0ff;color:#0a4fa8}
.cnd-actions{display:flex;flex-wrap:wrap;gap:5px;margin-top:auto;padding-top:8px;border-top:1px dashed #e6ebf3;align-items:center}
.cnd-missing{margin-top:10px;display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.cnd-quick{cursor:pointer;background:#fff;font-family:inherit}
.cnd-quick:hover{background:#e6f0ff}
.pf-links{display:flex;flex-wrap:wrap;gap:6px}
.pf-link{display:flex;flex-direction:column;gap:1px;white-space:normal;max-width:100%;cursor:grab;text-align:left}
.pf-link strong{font-size:13px}.pf-link small{font-size:11px;color:#4a5d78}
.pf-link .pf-funcao{font-style:normal;font-size:11.5px;font-weight:700;color:#0a4fa8;cursor:pointer}
.pf-link .pf-funcao:hover{text-decoration:underline}
.pf-link.sem-funcao{border-color:#f1c3be;background:var(--crit-bg)}
.pf-link.sem-funcao .pf-funcao{color:var(--crit-ink)}
.lim-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:0 0 14px}
.lim-card{border:1px solid #e3e8f0;border-radius:12px;padding:10px 12px;background:#fbfcfe;opacity:.72}
.lim-card.on{opacity:1;border-color:#c9d9f2;background:#fff}
.lim-card>small{display:block;font-size:11px;color:#5b6b85;margin-bottom:6px}
.lim-bar{height:8px;border-radius:999px;background:#e9eef6;overflow:hidden}
.lim-bar i{display:block;height:100%;background:#0d6ee6;border-radius:999px;transition:width .3s}
.lim-bar.warn i{background:#e0a63a}.lim-bar.over i{background:#d64545}
.lim-txt{display:block;margin-top:5px;font-size:11.5px;color:#4a5d78}
.lim-txt.crit{color:var(--crit-ink)}
.lk-info{background:#f4f7fb;border:1px solid #e3e8f0;border-radius:12px;padding:10px 12px;font-size:12.5px;margin-bottom:10px}
.ma-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin:0 0 12px}
.ma-head h2{margin:2px 0}
.ma-contract{margin-top:14px}
.ma-contract.dim{opacity:.72}
.ma-contract h3 a{color:inherit;text-decoration:none}
.ma-contract h3 a:hover{text-decoration:underline}
.ma-sub{margin:14px 0 6px;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:#5b6b85}
.ma-tot{text-align:right}.ma-tot small{display:block;font-size:10.5px;color:#6b7a94}.ma-tot strong{font-size:16px}
.kpi-sub{font-size:12px;color:#8a95a8;font-weight:600}
@media print{.ma-contract{break-inside:avoid}.pj-toolbar.no-print,.cnd-actions,.cnd-head-actions{display:none!important}}

/* v5.9 — faturamento por município e totais do contrato */
.pe-totais{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:8px;padding:8px 10px;border:1px dashed #d3dbe8;border-radius:10px;background:#f7f9fd}
.pe-totais span{display:flex;flex-direction:column}
.pe-totais small{font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:#6b7a94;font-weight:800}
.pe-totais strong{font-size:13px;color:#182841}
.pe-totais strong.neg{color:#b32626}
.pe-totais em{flex-basis:100%;font-size:10.5px;color:#7b8698;font-style:normal}
.fat-top{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.fat-pick{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.fat-pick label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:#5b6b85;font-weight:700}
.fat-pick select,.fat-pick input{height:38px;border:1px solid var(--line);border-radius:10px;padding:0 10px;background:#fff;font:inherit;min-width:220px}
.fat-tools{display:flex;gap:10px;align-items:center}
.fat-doc{background:#fff;border:1px solid #e3e8f0;border-radius:16px;padding:22px 26px}
.fat-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}
.fat-head h2{margin:2px 0}
.fat-total{text-align:right;border:1px solid #cfe3d8;background:#eef8f2;border-radius:12px;padding:10px 16px;min-width:230px}
.fat-total small{display:block;font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:#3b6a52;font-weight:800}
.fat-total strong{display:block;font-size:22px;color:#116b3f;margin:2px 0}
.fat-sec{margin:18px 0 6px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#2c3f66;padding:6px 10px;background:linear-gradient(135deg,#eef3fb,#e6edf9);border-radius:8px}
.fat-sec.fat-local{background:#f6f7fa;display:flex;justify-content:space-between}
.fat-table th,.fat-table td{font-size:11.5px}
.fat-table tfoot th{background:#f2f6fd}
.fat-geral{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding:12px 16px;border-radius:12px;background:#1d7a4f;color:#fff;font-weight:900;font-size:16px}
.fat-foot{margin-top:14px;color:#8a95a8}
@media print{.fat-top{display:none!important}.fat-doc{border:0;padding:0}.fat-geral{-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* v5.7 — obrigatório no cadastro × recorrente mensal */
.rec-pend{color:#a05f18;font-weight:700}
.rec-ok{color:var(--ok-ink);font-weight:600}
.doc-flags{display:flex;flex-wrap:wrap;gap:5px}
.doc-flag{border:1px dashed #c9d4e4;background:#fff;border-radius:999px;padding:4px 10px;font-size:11.5px;font-weight:700;color:#5b6b85;cursor:pointer;font-family:inherit}
.doc-flag:hover{border-color:#0d6ee6;color:#0a4fa8}
.doc-flag.on{border-style:solid;border-color:#0d6ee6;background:#e6f0ff;color:#0a4fa8}
.doc-flag.on.rec{border-color:#c47a08;background:#fff1d6;color:#8a5200}
.doc-flag[disabled]{cursor:default;opacity:.85}
.rec-box{border:1px solid #f0d9a8;background:#fff8e8;border-radius:14px;padding:14px 16px;margin:12px 0}
.rec-box.ok{border-color:#b6e5cb;background:var(--ok-bg)}
.rec-box h3{margin:0 0 4px;font-size:13px;letter-spacing:.09em;text-transform:uppercase;color:#8a5200}
.rec-box.ok h3{color:var(--ok-ink)}
.rec-box>small{display:block;color:#6b7a94;margin-bottom:10px}
.rec-list{display:flex;flex-direction:column;gap:6px}
.rec-item{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;background:#fff;border:1px solid #eadfc7;border-radius:10px;padding:8px 12px}
.rec-item strong{font-size:12.5px}
.rec-item small{display:block;color:#6b7a94;font-size:11px}
.rec-item .rec-actions{display:flex;gap:5px;flex-wrap:wrap;align-items:center}
.rec-item.st-ok{border-color:#b6e5cb}.rec-item.st-crit{border-color:#f1c3be}.rec-item.st-info{border-color:#bcd3f5}
.docs-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.docs-meta .pill{font-size:11px;padding:5px 10px}
.doc-item .doc-flags{margin-top:4px}

/* v5.8 — fotografia mensal dos documentos solicitados */
.doc-months{margin-top:16px;border-top:1px solid var(--line);padding-top:16px}.doc-month{border:1px solid var(--line);border-radius:10px;background:#fff;margin-top:7px;overflow:hidden}.doc-month summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:#f8fafc;list-style:none}.doc-month summary::-webkit-details-marker{display:none}.doc-month-body{padding:6px 12px}.doc-month-line{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px dashed var(--line)}.doc-month-line:last-child{border:0}.doc-month-line>div{flex:1}.doc-month-line small{display:block;color:var(--muted);margin-top:2px}.past-month-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:5px}

/* v6.1 — Função operacional do município */
.op-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin-bottom:14px}
.op-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px 14px;cursor:pointer;transition:.18s;position:relative}
.op-card:hover{border-color:#9fc4f5;transform:translateY(-2px);box-shadow:0 10px 24px -16px rgba(13,110,230,.5)}
.op-card.sel{border-color:#0d6ee6;box-shadow:0 0 0 3px rgba(13,110,230,.15)}
.op-card.sub{border-style:dashed;margin-left:10px}
.op-card.dim{opacity:.6}
.op-card-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.op-card-top b{font-size:13.5px;color:#182841}
.op-card-k{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:10px}
.op-card-k span{display:flex;flex-direction:column}
.op-card-k small{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#7b8698;font-weight:800}
.op-card-k strong{font-size:12.5px;color:#182841;font-variant-numeric:tabular-nums}
.op-card-k strong em{font-style:normal;color:#8a95a8;font-weight:600}
.op-card-k strong.neg,.op-kpi.neg strong,.neg{color:#b32626!important}
.op-card-lim{display:block;margin-top:8px;font-size:10px;color:#8a95a8}
.op-panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 16px}
.op-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.op-head h3{margin:2px 0}
.op-agreed{display:flex;flex-direction:column;font-size:11px;font-weight:700;color:#5b6b85;min-width:240px}
.op-agreed input{height:36px;border:1px solid var(--line);border-radius:10px;padding:0 10px;font:inherit;font-weight:800;font-size:15px;color:#116b3f;margin:3px 0}
.op-dom{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:12px 0 10px;font-size:12px;color:#5b6b85;font-weight:700}
.op-dom-opt{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid var(--line);border-radius:999px;font-weight:600;cursor:pointer;background:#fff}
.op-dom-opt.on{background:#0d6ee6;border-color:#0d6ee6;color:#fff}
.op-dom-opt input{margin:0}
.op-sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-bottom:10px}
.op-kpi{padding:9px 11px;border-radius:12px;background:#f7f9fd;border:1px solid #e6ecf5}
.op-kpi small{display:block;font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:#6b7a94;font-weight:800}
.op-kpi small em{font-style:normal;text-transform:none;letter-spacing:0;color:#9aa5b8;font-weight:600}
.op-kpi strong{display:block;font-size:14px;color:#182841;margin-top:2px;font-variant-numeric:tabular-nums}
.op-kpi strong em{font-style:normal;font-size:11px;color:#8a95a8;font-weight:600}
.op-kpi.neg{background:#fde8e6;border-color:#f4b9b3}
.op-table td,.op-table th{font-size:12px;vertical-align:middle}
.op-table th.dom{background:#e8f1ff;color:#0a4fa8;box-shadow:inset 0 -3px 0 #0d6ee6}
.op-in{width:100%;border:1px solid transparent;background:transparent;border-radius:8px;padding:5px 7px;font:inherit;font-size:12px;text-align:inherit}
.op-in:hover{border-color:#dde4ee;background:#fff}.op-in:focus{border-color:#0d6ee6;background:#fff;outline:0}
.op-qty{width:70px;text-align:right}.op-cost,.op-val{width:110px;text-align:right}.op-cargo-in{min-width:250px;font-weight:700}
.op-cargo{display:flex;align-items:center;gap:6px;width:100%;min-width:280px;background:none;border:0;padding:0;text-align:left;cursor:pointer;font:inherit;color:#182841}
.op-cargo-ico{font-size:13px;opacity:.55}
.op-cargo:hover .op-cargo-ico{opacity:1}
.op-used{display:inline-block;min-width:34px;text-align:center;padding:3px 8px;border-radius:999px;background:#eef2f8;font-weight:800}
.op-used.ok{background:#e4f6ec;color:#116b3f}.op-used.neg{background:#fde8e6;color:#b32626}
tr.op-row.over td{background:#fff6f5}
tr.op-row.drag-over td{background:#e8f1ff;box-shadow:inset 0 0 0 2px #0d6ee6}
.op-del{border:0;background:transparent;color:#b32626;font-size:16px;cursor:pointer;opacity:.5}.op-del:hover{opacity:1}
.op-tools{display:flex;gap:8px;align-items:center;margin-top:10px;flex-wrap:wrap}
.op-tools .btn.primary{margin-left:auto}
.op-dirty{font-size:11px;color:#8a5200;background:#fff1d6;padding:4px 9px;border-radius:999px;font-weight:700}
.op-hint{font-size:11px;margin:8px 0 0}
.op-alloc{display:grid;grid-template-columns:1fr 1fr;gap:14px;min-height:420px}
.op-alloc-col{display:flex;flex-direction:column;gap:8px;min-width:0}
.op-alloc-h{display:flex;justify-content:space-between;align-items:center;gap:8px}
.op-alloc-h input{flex:1;height:34px;border:1px solid var(--line);border-radius:10px;padding:0 10px;font:inherit}
.op-list{flex:1;overflow:auto;max-height:440px;border:1px solid var(--line);border-radius:12px;padding:6px;background:#f7f9fd;display:flex;flex-direction:column;gap:5px}
.op-drop{border-style:dashed;border-width:2px}
.op-drop.drag-over{border-color:#0d6ee6;background:#e8f1ff}
.op-item{display:flex;justify-content:space-between;align-items:center;gap:8px;background:#fff;border:1px solid #e6ecf5;border-radius:10px;padding:7px 10px;cursor:grab}
.op-item.alloc{cursor:default;border-color:#b6e5cb;background:#f3fbf6}
.op-item strong{display:block;font-size:12.5px}.op-item small{display:block;color:#7b8698;font-size:10.5px}.op-item small em{font-style:normal;color:#8a5200}
.op-plus,.op-rm{border:0;border-radius:8px;width:28px;height:28px;cursor:pointer;font-weight:900;font-size:15px}
.op-plus{background:#e8f1ff;color:#0a4fa8}.op-rm{background:#fde8e6;color:#b32626}
.op-empty{color:#8a95a8;font-size:12px;text-align:center;padding:30px 10px}
@media (max-width:760px){.op-alloc{grid-template-columns:1fr}}
/* v6.1 — colunas configuráveis da prestação de contas */
.mc-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.mc-group{border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.mc-group h4{margin:0 0 6px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#5b6b85}
.mc-group label{display:flex;gap:8px;align-items:center;font-size:12.5px;padding:4px 0;cursor:pointer}

/* v6.1 — rodapé da barra lateral: Portal e Sair */
.sidebar-bottom{flex-direction:column;align-items:stretch;gap:10px;padding:12px 14px 14px}
.sidebar-bottom .user-mini{justify-content:center}
.sb-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}
.sb-actions:has(.sb-btn:only-child){grid-template-columns:1fr}
.sb-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 8px;border-radius:12px;background:linear-gradient(160deg,rgba(255,255,255,.1),rgba(255,255,255,.04));border:1px solid rgba(255,255,255,.1);color:#dfe6f5;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;transition:.2s;box-shadow:0 8px 18px -12px rgba(0,0,0,.6)}
.sb-btn svg{width:15px;height:15px;fill:currentColor;flex:none}
.sb-btn:hover{background:linear-gradient(160deg,#2f6fe0,#1f4fb0);border-color:#3b7be8;color:#fff;transform:translateY(-1px)}
.sb-btn.sb-exit:hover{background:linear-gradient(160deg,#d13a3a,#9e2323);border-color:#d13a3a}

/* v6.2 — card do contrato no município e página do contrato */
.contract-card.cc2{padding:16px 16px 12px}
.contract-card.cc2.cc-alert{border-color:#f5c26b;background:linear-gradient(180deg,#fffaf0,#fff)}
.cc2-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.cc2-num{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#7b8698;font-weight:800}
.cc2-head h4{margin:2px 0 0;font-size:15px}
.cc2-vig{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;padding:10px 12px;border-radius:12px;background:#f5f8fd}
.cc2-vig small{display:block;font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:#7b8698;font-weight:800}
.cc2-vig b{font-size:12.5px;color:#182841}
.cc2-count{text-align:right;line-height:1}
.cc2-count strong{display:block;font-size:26px;font-weight:900;color:#116b3f;letter-spacing:-.02em}
.cc2-count small{font-size:9.5px;color:#7b8698;font-weight:700}
.cc2-count.alert strong{color:#b32626}
.cc2-warn{margin-top:8px;padding:6px 10px;border-radius:9px;background:#fde8e6;color:#a8231b;font-size:11px;font-weight:800}
.cc2-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-top:10px}
.cc2-row small{font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:#7b8698;font-weight:800}
.cc2-row b{font-size:12.5px;color:#182841;font-variant-numeric:tabular-nums;white-space:nowrap}
.cc2-row b.neg{color:#b32626}
.cc2-bar{height:7px;border-radius:99px;background:#e9eef7;overflow:hidden;margin-top:5px}
.cc2-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#2f6fe0,#38bdf8)}
.cc2-bar.green i{background:linear-gradient(90deg,#10b981,#34d399)}
.mc-warn{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:999px;background:#fde8e6;color:#a8231b;font-size:10px;font-weight:900;margin-right:6px}
.ct-page .ct-hero{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;border-radius:18px;background:linear-gradient(135deg,#0d1730,#1d2f5c);color:#fff;margin-bottom:14px}
.ct-page .ct-hero.alert{background:linear-gradient(135deg,#5a1a1a,#8f2626)}
.ct-page .ct-hero h2{margin:2px 0 6px;font-size:22px}
.ct-page .ct-hero .eyebrow{color:#bac5dd}
.ct-vig{font-size:12.5px;color:#dfe6f5;display:flex;align-items:center;gap:8px}
.ct-count{text-align:right;line-height:1;padding:10px 18px;border-radius:14px;background:rgba(255,255,255,.1)}
.ct-count strong{display:block;font-size:34px;font-weight:900;letter-spacing:-.02em}
.ct-count small{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:#dfe6f5;font-weight:700}
.ct-count.alert{background:rgba(255,255,255,.15)}
.ct-page .op-panel{border:0;box-shadow:none;padding:0}

/* v6.3 — voltar preso na barra, cards menores e subcontratos agrupados */
.pf-jump-back{background:#182841;color:#fff;border:0;border-radius:999px;padding:7px 14px;font-weight:800;font-size:12.5px;cursor:pointer;margin-right:6px;box-shadow:0 8px 18px -12px rgba(0,0,0,.6)}
.pf-jump-back:hover{background:#0d6ee6}
.contract-grid{grid-template-columns:repeat(auto-fill,minmax(300px,340px));align-items:start}
.cc-group{grid-column:span 1;display:flex;flex-direction:column;gap:0}
.cc-group>.contract-card{border-bottom-left-radius:6px;border-bottom-right-radius:6px}
.cc-subs{display:flex;flex-direction:column;gap:8px;margin:-2px 0 0 18px;padding:10px 0 0 14px;border-left:2px dashed #b8c6dd}
.cc-subs .contract-card{border-style:dashed;border-color:#b8c6dd;background:#fbfcff;border-radius:6px 14px 14px 14px;position:relative}
.cc-subs .contract-card::after{content:"";position:absolute;left:-16px;top:22px;width:14px;height:2px;border-top:2px dashed #b8c6dd}
.cc-subs .contract-card::before{display:none}
.cc-subs .cc2-head h4{font-size:13.5px}
.cc-subs .cc2-count strong{font-size:20px}
.cc-subs .cc2-num{color:#4b67b1}
tr.op-row-sub td{background:#f3f0ff!important;color:#3b2f7a}
tr.op-row-sub .op-cargo strong{color:#4c3aa3}
.op-sub-tag{display:block;font-style:normal;font-size:10px;color:#6d5bc7;font-weight:700;margin-top:2px}
.op-subs-btn.on{background:#e9e4ff;border-color:#c8bcff;color:#4c3aa3}

/* v6.3 — tabela de cargos compacta, limitador no cabeçalho, histórico por campo, catálogo */
.op-table.compact td{padding:3px 8px}.op-table.compact th{padding:7px 8px}
.op-table.compact .op-in{padding:3px 6px;font-size:12px}
.op-table.compact .op-used{padding:2px 7px;min-width:30px}
.op-cell{display:flex;flex-direction:column;align-items:flex-end;gap:0}
.op-table td:first-child .op-cell{align-items:flex-start}
.op-log{border:0;background:none;padding:0 6px;font-size:9px;color:#9aa5b8;cursor:pointer;line-height:1.2;text-align:right;white-space:nowrap}
.op-log:hover{color:#0d6ee6;text-decoration:underline}
.op-agreed .op-log{align-self:flex-start;padding:0}
.op-limhint{font-size:11px;color:#7b8698;margin-top:6px}
.op-limhint b{color:#0a4fa8}
.th-lim{cursor:pointer;user-select:none;transition:.15s}
.th-lim i{font-style:normal;font-size:9px;color:#9aa5b8;margin-left:4px}
.th-lim:hover{background:#eef3fb}
.th-lim.dom{background:#e8f1ff;color:#0a4fa8;box-shadow:inset 0 -3px 0 #0d6ee6}
.th-lim.dom i{color:#0d6ee6}
.op-catalog .op-cat-top{display:flex;gap:10px;align-items:center;margin-bottom:8px}
.op-catalog .op-cat-top input[type="text"],.op-catalog #catQ{flex:1;height:34px;border:1px solid var(--line);border-radius:10px;padding:0 10px;font:inherit}
.op-cat-wrap{max-height:52vh;overflow:auto}
.op-cat-in td{opacity:.55}
.cat-name{min-width:260px;font-weight:700}
.op-cat-new{display:grid;grid-template-columns:auto 1fr 130px 150px auto;gap:8px;align-items:center;margin-top:10px;padding:10px;border:1px dashed #d3dbe8;border-radius:12px;background:#f7f9fd}
.op-cat-new input{height:32px;border:1px solid var(--line);border-radius:9px;padding:0 9px;font:inherit}
.op-cat-new strong{font-size:12px;color:#5b6b85}
.op-log-none{opacity:.45}
.op-in.op-saved{background:#e4f6ec!important;border-color:#8fd3ae!important}

/* v6.4 — rodapé dos cargos, anexos do contrato, seção 2/3 do município */
.op-tools{margin-top:18px;padding-top:12px;border-top:1px solid #eef2f7;gap:10px}
.op-autosave{font-size:11px;color:#116b3f;background:#e4f6ec;padding:4px 10px;border-radius:999px;font-weight:700}
.op-apply{margin-left:auto;display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px dashed #d3dbe8;border-radius:10px;background:#f7f9fd}
.op-apply small{font-size:11px;color:#5b6b85;font-weight:700}
.op-apply input{height:30px;border:1px solid var(--line);border-radius:8px;padding:0 8px;font:inherit}
tr.op-row-new td{background:#fffbea}
.ct-files{margin-top:18px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 16px}
.ct-files-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}
.ct-files-head h3{margin:0;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#5b6b85}
.ct-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:22px;border:2px dashed #c9d5e6;border-radius:14px;background:#f7f9fd;cursor:pointer;transition:.2s;text-align:center}
.ct-drop:hover,.ct-drop.drag-over{border-color:#0d6ee6;background:#e8f1ff}
.ct-drop.busy{opacity:.6;pointer-events:none}
.ct-drop-ico{font-size:26px;color:#0d6ee6}
.ct-drop b{font-size:13px;color:#182841}.ct-drop small{font-size:11px;color:#7b8698}
.ct-file-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;margin-top:12px}
.ct-file{display:flex;align-items:center;gap:10px;padding:8px;border:1px solid #e6ecf5;border-radius:12px;background:#fff}
.ct-file-thumb{width:54px;height:54px;border-radius:10px;background:#f0f4fa;display:grid;place-items:center;overflow:hidden;flex:none;text-decoration:none;font-size:22px}
.ct-file-thumb img{width:100%;height:100%;object-fit:cover}
.ct-file-info{min-width:0;flex:1}.ct-file-info a{text-decoration:none;color:#182841}
.ct-file-info strong{display:block;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-file-info small{font-size:10.5px;color:#7b8698}
.ct-file-empty{font-size:12px;color:#8a95a8;padding:10px 4px}
.pf-sec-actions{margin-left:auto;display:flex;gap:8px;align-items:center}
.pf-fold summary{list-style:none;cursor:pointer}
.pf-fold summary::-webkit-details-marker{display:none}
.pf-fold summary h2::after{content:" ▸";color:#8a95a8;font-size:14px}
.pf-fold[open] summary h2::after{content:" ▾"}
.mundoc-list{display:flex;flex-direction:column;gap:6px}
.mundoc{display:flex;align-items:center;gap:12px;padding:8px 12px;border:1px solid #e6ecf5;border-radius:10px;background:#fff;cursor:pointer}
.mundoc:hover{border-color:#9fc4f5}
.mundoc-main{flex:1;min-width:0}.mundoc-main strong{display:block;font-size:12.5px}.mundoc-main small{font-size:10.5px;color:#7b8698}

/* v6.5 — identidade presa no cabeçalho, limitador moderno, painéis, sem textos explicativos */
.pf-jump{align-items:center;gap:8px}
.pf-jump-ident{display:inline-flex;align-items:center;gap:9px;padding:4px 12px 4px 4px;border-radius:999px;background:#fff;border:1px solid #dde4ee;margin-right:6px;max-width:320px}
.pf-jump-ident i{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:linear-gradient(135deg,#102845,#2f6fe0);color:#fff;font-style:normal;font-weight:900;font-size:11px;flex:none}
.pf-jump-ident>span{display:grid;line-height:1.1;min-width:0}
.pf-jump-ident b{font-size:12.5px;color:#182841;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-jump-ident small{font-size:9.5px;color:#7b8698;text-transform:uppercase;letter-spacing:.06em}
.ct-page .ct-hero{position:sticky;top:62px;z-index:5;padding:12px 18px;margin-bottom:12px}
.ct-page .ct-hero h2{font-size:18px;margin:0 0 3px}
.ct-count strong{font-size:26px}
.ct-count{padding:6px 14px}
/* limitador no cabeçalho: nuvens azuis */
.op-table th.th-lim{border-radius:10px;padding:8px 12px;position:relative;overflow:hidden;transition:.25s}
.op-table th.th-lim i{display:inline-block;padding:2px 7px;border-radius:999px;background:#eef2f8;color:#7b8698;font-size:9px;margin-left:6px;vertical-align:middle}
.op-table th.th-lim:hover{background:#eaf2ff}
.op-table th.th-lim.dom{color:#fff;box-shadow:0 10px 22px -12px rgba(37,99,235,.8);background:linear-gradient(120deg,#0ea5e9,#2563eb,#38bdf8,#1d4ed8);background-size:300% 300%;animation:munGlow 6s linear infinite}
.op-table th.th-lim.dom i{background:rgba(255,255,255,.22);color:#fff}
@keyframes munGlow{0%{background-position:0% 50%}100%{background-position:300% 50%}}
/* painéis de resumo com cor */
.op-sum{gap:10px;margin:12px 0 14px}
.op-kpi{padding:12px 14px;border-radius:14px;border:0;background:linear-gradient(160deg,#f5f8fd,#eef3fb);box-shadow:inset 0 0 0 1px #e3e9f3;position:relative;overflow:hidden}
.op-kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--k,#2f6fe0)}
.op-kpi:nth-child(1){--k:#2f6fe0}.op-kpi:nth-child(2){--k:#0ea5e9}.op-kpi:nth-child(3){--k:#f59e0b}.op-kpi:nth-child(4){--k:#8b5cf6}.op-kpi:nth-child(5){--k:#10b981}.op-kpi:nth-child(6){--k:#14b8a6}
.op-kpi strong{font-size:17px}
.op-kpi.neg{background:linear-gradient(160deg,#fff1f0,#fde8e6);box-shadow:inset 0 0 0 1px #f4b9b3}.op-kpi.neg::before{background:#b32626}
.op-head{padding:2px 0 8px}
/* textos explicativos escondidos */
.pf-sec-head small,.pf-hint,.op-limhint,.pf-alert-head small,#pageSubtitle,.drop-tip,.pf-card-wide>small,.ma-head p,.drawer-head small,.section-title .pill,.op-hint,.card-open-hint,.pj-toolbar p,.panel>p.muted,.detail-content>p.muted{display:none!important}

/* v6.5b — anexos: área de soltar menor, arquivos maiores */
.ct-files{display:grid;grid-template-columns:260px 1fr;gap:14px;align-items:start}
.ct-files-head{grid-column:1/-1;margin-bottom:0}
.ct-drop{padding:16px 12px;min-height:120px}
.ct-drop-ico{font-size:22px}.ct-drop b{font-size:12.5px}.ct-drop small{font-size:10.5px}
.ct-file-list{margin-top:0;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.ct-file{flex-direction:column;align-items:stretch;padding:10px;gap:8px;position:relative}
.ct-file-thumb{width:100%;height:120px;border-radius:10px;font-size:40px}
.ct-file-info strong{white-space:normal;font-size:13px;line-height:1.25}
.ct-file .op-rm{position:absolute;top:8px;right:8px}
@media (max-width:760px){.ct-files{grid-template-columns:1fr}}

/* v6.5c — anexos: miniatura real do PDF, área de soltar animada, rodapé alinhado */
.ct-files{grid-template-columns:1fr}
.ct-file-list{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.ct-drop{min-height:100%;height:100%;border-radius:12px;position:relative;isolation:isolate;border:0;background:#f7f9fd}
.ct-drop::before{content:"";position:absolute;inset:0;border-radius:12px;padding:2px;background:linear-gradient(120deg,#93c5fd,#2563eb,#38bdf8,#93c5fd);background-size:300% 300%;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.55;transition:opacity .25s;z-index:-1}
.ct-drop:hover::before,.ct-drop.drag-over::before{opacity:1;animation:munGlow 3s linear infinite}
.ct-drop:hover,.ct-drop.drag-over{background:#eef4ff}
.ct-drop-ico{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#38bdf8,#2563eb);box-shadow:0 12px 24px -12px #2563eb;margin-bottom:6px}
.ct-drop-ico svg{width:24px;height:24px;fill:#fff;transition:transform .3s}
.ct-drop:hover .ct-drop-ico svg,.ct-drop.drag-over .ct-drop-ico svg{animation:dropBounce .9s ease-in-out infinite}
@keyframes dropBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.ct-file-list .ct-drop{grid-column:auto}
.ct-file{padding:0;overflow:hidden;border-radius:14px;box-shadow:0 12px 26px -20px rgba(15,26,51,.5);transition:.2s}
.ct-file:hover{transform:translateY(-3px);box-shadow:0 20px 36px -22px rgba(37,99,235,.5)}
.ct-file-thumb{height:170px;border-radius:0;position:relative;background:#eef2f8}
.ct-file-thumb iframe{width:100%;height:100%;border:0;pointer-events:none;background:#fff}
.ct-file-open{position:absolute;right:8px;bottom:8px;background:rgba(15,26,51,.8);color:#fff;font-size:10px;font-weight:800;padding:3px 9px;border-radius:999px;letter-spacing:.06em;text-transform:uppercase}
.ct-file-info{padding:8px 10px 10px}
.ct-file .op-rm{top:6px;right:6px;width:24px;height:24px;font-size:13px;opacity:.85}
.op-tools{padding:12px 14px 16px;margin-top:16px}
.ct-file-items{display:contents}

/* v6.5d — cabeçalho inteiro do contrato acompanha a rolagem; botão de alocação com brilho */
.ct-page .ct-hero{top:var(--dtTop,62px)}
.ct-page .op-sticky{position:sticky;top:var(--opStickyTop,150px);z-index:5;background:#f4f7fb;padding-bottom:4px;box-shadow:0 10px 12px -12px rgba(20,40,80,.35)}
.ct-page .op-table thead th{background:#fff;box-shadow:inset 0 -1px 0 var(--line)}
.ct-page .op-table th.th-lim.dom{background:linear-gradient(120deg,#0ea5e9,#2563eb,#38bdf8,#1d4ed8);background-size:300% 300%}
.op-alloc-btn{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 6px;border-radius:999px;border:1px solid #dbe4f3;background:#fff;cursor:pointer;font:inherit;transition:.2s;position:relative}
.op-alloc-btn svg{width:18px;height:18px;fill:#2f6fe0;filter:drop-shadow(0 0 4px rgba(47,111,224,.55));animation:allocGlow 2.2s ease-in-out infinite}
.op-alloc-btn .op-used{min-width:auto;padding:0;background:none;font-size:12.5px;color:#182841}
.op-alloc-btn:hover{border-color:#2f6fe0;background:#eaf2ff;transform:translateY(-1px);box-shadow:0 10px 20px -12px rgba(47,111,224,.7)}
.op-alloc-btn.ok{border-color:#b6e5cb;background:#f3fbf6}.op-alloc-btn.ok svg{fill:#116b3f;filter:drop-shadow(0 0 4px rgba(17,107,63,.5))}
.op-alloc-btn.neg{border-color:#f4b9b3;background:#fff1f0}.op-alloc-btn.neg svg{fill:#b32626;filter:drop-shadow(0 0 4px rgba(179,38,38,.5))}
@keyframes allocGlow{0%,100%{filter:drop-shadow(0 0 2px rgba(47,111,224,.35))}50%{filter:drop-shadow(0 0 7px rgba(47,111,224,.9))}}
.op-cargo{font-weight:700}
.ct-file-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:230px;border:1px dashed #d3dbe8;border-radius:14px;background:#fafbfe;color:#7b8698;font-size:12.5px;text-align:center;padding:16px}
.ct-file-empty span{font-size:26px;opacity:.5}.ct-file-empty small{font-size:11px;color:#9aa5b8}

/* v6.6 — painéis de identidade com nuvens azuis (mesmo estilo da tela inicial) */
.pf-hero,.pf-hero.pf-low,.pf-hero.pf-partial,.pf-hero.pf-full,.pf-hero.pf-good,.detail-hero,.ct-page .ct-hero,.ct-page .ct-hero.alert{
  position:relative;overflow:hidden;color:#0f1a33;border:1px solid rgba(255,255,255,.9);
  background:linear-gradient(120deg,#e6f1ff,#dbe9ff,#e3f4ff,#eef3ff,#d6e6ff,#e6f1ff);background-size:300% 300%;animation:heroClouds 14s ease-in-out infinite alternate;
  box-shadow:0 18px 40px -28px rgba(37,99,235,.55)}
.ct-page .ct-hero{position:sticky}
.pf-hero::before,.detail-hero::before,.ct-page .ct-hero::before{content:"";position:absolute;inset:-40%;background:radial-gradient(circle at 20% 30%,rgba(56,189,248,.35),transparent 35%),radial-gradient(circle at 80% 20%,rgba(37,99,235,.28),transparent 40%),radial-gradient(circle at 60% 90%,rgba(147,197,253,.4),transparent 40%);filter:blur(30px);animation:heroDrift 12s ease-in-out infinite alternate;pointer-events:none}
.pf-hero>*,.detail-hero>*,.ct-page .ct-hero>*{position:relative;z-index:1}
@keyframes heroClouds{0%{background-position:0% 50%}100%{background-position:100% 50%}}
@keyframes heroDrift{0%{transform:translate(0,0)}100%{transform:translate(6%,-5%)}}
.pf-hero .eyebrow,.detail-hero .eyebrow,.ct-page .ct-hero .eyebrow{color:#2563eb!important;font-weight:800;letter-spacing:.16em}
.pf-hero h2,.detail-hero h2,.ct-page .ct-hero h2{color:#0f1a33}
.pf-hero p,.detail-hero p,.ct-vig{color:#3c4c6b}
.pf-hero p strong{color:#0f1a33}
.pf-avatar{background:linear-gradient(135deg,#38bdf8,#2563eb);color:#fff;box-shadow:0 14px 28px -14px #2563eb}
.pf-ring::after{background:#fff}
.pf-ring span{color:#0f1a33}
.pf-ring.gauge-low{color:#e11d48}.pf-ring.gauge-partial{color:#f59e0b}.pf-ring.gauge-full,.pf-ring.gauge-good{color:#10b981}
.pf-gauge small{color:#5b6b85;opacity:1}
.ct-count{background:#fff;border:1px solid #dbe4f3;box-shadow:0 10px 24px -16px rgba(37,99,235,.5)}
.ct-count strong{color:#116b3f}.ct-count small{color:#7b8698}
.ct-page .ct-hero.alert .ct-count strong{color:#b32626}
.ct-page .ct-hero.alert{box-shadow:0 18px 40px -28px rgba(225,29,72,.5)}
.ct-page .ct-hero.alert::before{background:radial-gradient(circle at 20% 30%,rgba(251,113,133,.35),transparent 35%),radial-gradient(circle at 80% 20%,rgba(245,158,11,.3),transparent 40%),radial-gradient(circle at 60% 90%,rgba(147,197,253,.35),transparent 40%)}
.pf-alert{border-radius:14px}

/* v6.6b — valor do contrato junto dos outros painéis, em destaque */
.op-sumwrap{display:grid;grid-template-columns:230px 1fr;gap:10px;align-items:stretch;margin:10px 0 12px}
.op-sumwrap .op-sum{margin:0}
.op-kpi.main{background:linear-gradient(135deg,#2563eb,#38bdf8);box-shadow:0 14px 28px -14px #2563eb;color:#fff}
.op-kpi.main::before{display:none}
.op-kpi.main small{color:rgba(255,255,255,.85)}.op-kpi.main small em{color:rgba(255,255,255,.7)}
.op-kpi.main .op-agreed{min-width:0;margin-top:4px}
.op-kpi.main .op-agreed input{height:34px;border:0;border-radius:9px;background:rgba(255,255,255,.92);color:#0f1a33;font-size:16px;margin:0}
.op-kpi.main .op-agreed strong{color:#fff;font-size:18px}
.op-kpi.main .op-log{color:rgba(255,255,255,.8);padding:2px 0 0}
.op-kpi.main .op-log:hover{color:#fff}
@media (max-width:760px){.op-sumwrap{grid-template-columns:1fr}}

/* v6.6c — aviso de cadastro incompleto na paleta azul */
.pf-alert,.pf-alert.gauge-low,.pf-alert.gauge-partial,.pf-alert.gauge-full,.pf-alert.gauge-good{background:linear-gradient(120deg,#f2f7ff,#e8f0ff);border:1px solid #cfe0fb;color:#1e3a8a;border-radius:14px;box-shadow:0 12px 26px -22px rgba(37,99,235,.5);padding:14px 18px 14px}
.pf-alert-head strong{color:#1e3a8a}
.pf-alert .req{color:#b32626}
.pf-missing-list .chip{background:#fff;border:1px solid #d6e4fb;color:#1e3a8a;font-weight:600;transition:.18s}
.pf-missing-list .chip:hover{border-color:#2563eb;background:#eaf2ff}
.pf-missing-list .chip.req{border-color:#f4b9b3;color:#b32626;background:#fff5f4}
.pf-alert.gauge-full,.pf-alert.gauge-good{background:linear-gradient(120deg,#effcf5,#e3f8ec);border-color:#b6e5cb;color:#116b3f}
.pf-alert.gauge-full .pf-alert-head strong,.pf-alert.gauge-good .pf-alert-head strong{color:#116b3f}

/* v6.6d — bloco fixo sem vão; valor do contrato à direita */
.ct-page .ct-hero{margin-bottom:0}
.ct-page .op-sticky{margin-top:0;padding-top:10px;padding-bottom:10px;box-shadow:0 12px 14px -12px rgba(20,40,80,.35)}
.ct-page .op-head{padding:0;min-height:0}
.ct-page .op-head:empty{display:none}
.op-sumwrap{grid-template-columns:1fr 230px;margin:0}
.op-sumwrap .op-kpi.main{order:2}
.op-sumwrap .op-sum{order:1}
.ct-page .op-table-wrap{margin-top:6px}

/* v6.6e — bloco fixo único (contrato + resumo) e cabeçalho da tabela fixo com linha delimitadora */
.ct-sticky{position:sticky;top:var(--dtH,62px);z-index:6;background:#f4f7fb;padding-bottom:8px;margin:0 -4px;padding-left:4px;padding-right:4px}
.ct-sticky .ct-hero{position:static;margin-bottom:8px}
.ct-sticky .op-sticky{position:static;padding:0;box-shadow:none;background:transparent}
.ct-page .op-panel{overflow:visible}
.ct-page .op-table-wrap{overflow:visible;margin-top:0}
.ct-page .op-table thead th{position:sticky;top:calc(var(--dtH,62px) + var(--ctStickyH,0px));z-index:5;background:#fff;box-shadow:inset 0 -2px 0 #c9d5e6}
.ct-page .op-table thead th.th-lim.dom{box-shadow:inset 0 -2px 0 #c9d5e6,0 10px 22px -12px rgba(37,99,235,.8)}
.ct-page .op-table thead th.th-lim{border-radius:0}

/* v6.7 — alocação: filtros e situação em nuvens de cor */
.op-filters{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.op-filters select{height:30px;border:1px solid var(--line);border-radius:9px;padding:0 8px;font:inherit;font-size:12px;background:#fff;max-width:200px}
.op-fchips{display:flex;gap:4px;margin-left:auto}
.op-fchip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:4px 10px;font:inherit;font-size:11px;font-weight:700;color:#5b6b85;cursor:pointer}
.op-fchip.on{background:#182841;border-color:#182841;color:#fff}
.op-fchip.free.on{background:#116b3f;border-color:#116b3f}.op-fchip.here.on{background:#b7791f;border-color:#b7791f}.op-fchip.other.on{background:#b32626;border-color:#b32626}
.op-item{position:relative;overflow:hidden}
.op-item.op-other{border-color:#f4c2bd;background:linear-gradient(120deg,#fff5f4,#ffe9e6,#fff1f0,#ffe4e1);background-size:300% 300%;animation:heroClouds 8s ease-in-out infinite alternate}
.op-item.op-here{border-color:#f3d58a;background:linear-gradient(120deg,#fffbea,#fff1c9,#fff8e1,#ffefc2);background-size:300% 300%;animation:heroClouds 8s ease-in-out infinite alternate}
.op-tag{display:block;font-style:normal;font-size:10px;font-weight:700;margin-top:2px}
.op-tag.here{color:#8a5200}.op-tag.other{color:#a8231b}

/* v6.8 — painéis de dados modernos, ocupando a largura; histórico compacto */
.pf-panel{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.pf-card{border:0;border-radius:18px;padding:0 0 12px;background:#fff;box-shadow:0 1px 0 #e6ecf5,0 18px 36px -30px rgba(15,26,51,.5);overflow:hidden}
.pf-card>h3,.pf-card .pf-card-head{margin:0 0 10px;padding:12px 18px;background:linear-gradient(120deg,#eef4ff,#e6efff);color:#1e3a8a;font-size:11.5px;letter-spacing:.12em;border-bottom:1px solid #dbe6fb}
.pf-card .pf-card-head h3{padding:0;margin:0;background:none;border:0;color:#1e3a8a;font-size:11.5px}
.pf-card .pf-grid,.pf-card>.pf-field,.pf-card>.pf-history,.pf-card>small{margin:0 18px}
.pf-grid{gap:10px 14px}
.pf-field{padding:6px 8px;border-radius:10px}
.pf-field:hover{background:#f3f7ff}
.pf-field small{font-size:10px;color:#7b8698;letter-spacing:.04em}
.pf-field .pf-value{font-size:13.5px}
.pf-stamp{font-size:9.5px!important;color:#a3adbf!important}
.pf-missing{background:linear-gradient(120deg,#fff5f4,#ffecea)!important;box-shadow:inset 0 0 0 1px #f6c9c4}
.pf-card-wide{padding-bottom:10px}
.pf-history{max-height:none}
.hist-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:6px 16px}
.hist-list li{display:flex;gap:9px;align-items:flex-start;padding:6px 8px;border-radius:10px;background:#f7f9fd}
.hist-list li i{width:24px;height:24px;border-radius:8px;background:linear-gradient(135deg,#38bdf8,#2563eb);color:#fff;font-style:normal;font-weight:900;font-size:9.5px;display:grid;place-items:center;flex:none;margin-top:1px}
.hist-list li div{min-width:0;font-size:12px;line-height:1.3}
.hist-list li b{color:#182841}
.hist-de{color:#a3adbf;text-decoration:line-through}.hist-para{color:#116b3f;font-weight:700}
.hist-list li small{display:block;font-size:10px;color:#8a95a8}
.pf-panel{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:1100px){.pf-panel{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:680px){.pf-panel{grid-template-columns:1fr}}

/* v6.8b — alocação: itens sem encolher, ordem, alinhamento dos filtros */
.op-item{flex:none}
.op-list{gap:6px;padding:8px}
.op-alloc{gap:16px}
.op-alloc-col{gap:8px}
.op-alloc-h{min-height:34px}
.op-search{width:100%;height:36px;border:1px solid var(--line);border-radius:10px;padding:0 12px;font:inherit;box-sizing:border-box}
.op-filters{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.op-filters select{width:100%;max-width:none;height:34px}
.op-fchips{display:flex;gap:6px;margin:0;flex-wrap:wrap}
.op-fchip{padding:5px 12px}
.op-drop{min-height:300px}
#opCount{text-align:right;font-size:11px}

/* v6.8c — histórico recolhido; menos espaço entre o resumo e a tabela de cargos */
.pf-card-wide{padding-bottom:0}
.pf-card-wide .pf-card-head{margin-bottom:0;border-bottom:0}
.pf-card-wide .pf-history:not([hidden]){padding:10px 0 12px}
.ct-sticky{padding-bottom:2px}
.ct-sticky .ct-hero{margin-bottom:6px}
.op-sumwrap{margin:0}
.ct-page #contractOp{margin-top:0}
.ct-page .op-panel>.table-wrap{margin-top:0}
.ct-page .op-table thead th{padding-top:6px;padding-bottom:6px}
.sb-ver{display:block;text-align:center;font-size:9px;color:#6b7a94;margin-top:6px;letter-spacing:.08em}

/* v6.9 — cabeçalho flutuante da tabela de cargos (JS), linha azul delimita as informações */
.ct-page .op-table thead th{position:static}
.op-float-head{position:fixed;z-index:95;background:#fff;border-bottom:3px solid #2563eb;box-shadow:0 12px 18px -12px rgba(20,40,80,.45);overflow:hidden;border-radius:0 0 8px 8px}
.op-float-head table{width:100%;table-layout:fixed;margin:0}
.op-float-head th{padding:7px 8px;font-size:12px;background:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.op-float-head th.th-lim{cursor:pointer}

/* v6.9b — alocação: colunas alinhadas (subgrid) e alerta de limite no painel de alocados */
.op-alloc{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto auto 1fr auto;gap:8px 16px;min-height:480px}
.op-alloc-col{display:grid;grid-template-rows:subgrid;grid-row:1/7;gap:8px;min-width:0}
.op-alloc-col>.op-alloc-info{grid-row:2/5}
.op-alloc-col>.op-drop{grid-row:5}
.op-alloc-col>#opAllocFoot{grid-row:6}
.op-alloc-col>#opCount{grid-row:6}
.op-list{max-height:none;height:100%;min-height:260px}
.op-drop{min-height:260px}
.op-alloc-info{border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;justify-content:center;gap:3px}
.op-alloc-info b{display:block;font-size:13px}
.op-alloc-info span{font-size:11.5px;line-height:1.35}
.op-alloc-ok{background:linear-gradient(120deg,#effcf5,#e3f8ec);border:1px solid #b6e5cb;color:#116b3f}
.op-alloc-warn{background:linear-gradient(120deg,#fffbea,#fff1c9);border:1px solid #f3d58a;color:#8a5200}
.op-alloc-alert{background:linear-gradient(120deg,#fff1f0,#ffe4e1,#fff5f4);background-size:300% 300%;animation:heroClouds 6s ease-in-out infinite alternate;border:1px solid #f4b9b3;color:#a8231b}
.op-alloc-info>div{display:flex;flex-direction:column;gap:3px;border-radius:12px;padding:10px 12px;height:100%;justify-content:center}
.op-alloc-info{padding:0;border:0}
.op-drop.over{border-color:#e05a5a;background:#fff5f4}
@media (max-width:760px){.op-alloc{grid-template-columns:1fr;grid-template-rows:none}.op-alloc-col{display:flex;flex-direction:column;grid-row:auto}}

/* v6.9c — alocação: já alocados neste cargo e contador de contratos */
.op-item.op-this{border-color:#b6e5cb;background:linear-gradient(120deg,#effcf5,#e3f8ec);cursor:default;opacity:.85}
.op-tag.this{color:#116b3f}
.op-cnt{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;background:#eef2f8;color:#3c4c6b;font-style:normal;font-size:9.5px;font-weight:800;vertical-align:middle}
.op-item.alloc .op-cnt{background:#dbeafe;color:#1d4ed8}

/* v6.6 — botão de abrir cadastro nas listas de alocação e na aba Assinaturas */
.op-open{width:28px;height:28px;border-radius:9px;border:1px solid #dbe4f3;background:#fff;display:inline-grid;place-items:center;cursor:pointer;flex:none;margin-right:8px;vertical-align:middle;transition:.18s}
.op-open svg{width:15px;height:15px;fill:#2f6fe0}
.op-open:hover{background:#2f6fe0;border-color:#2f6fe0}.op-open:hover svg{fill:#fff}
.op-item{align-items:center}
.op-item>div{flex:1;min-width:0}

/* v7.0 — área de soltar padrão em todo envio de arquivo; certidões/declarações na prestação do mês */
.az-drop{min-height:110px;height:auto;width:100%;box-sizing:border-box}
.az-drop input{display:none}
.az-drop .az-name{display:block;margin-top:6px;padding:3px 10px;border-radius:999px;background:#e8f1ff;color:#1d4ed8;font-size:11px;font-weight:700;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.az-drop.has-file::before{opacity:1}
.az-drop.mini{flex-direction:row;gap:8px;min-height:0;padding:6px 12px 6px 7px;text-align:left;border-radius:999px;width:auto;display:inline-flex;vertical-align:middle;align-items:center}
.az-drop.mini::before{border-radius:999px}
.az-drop.mini .ct-drop-ico{width:28px;height:28px;border-radius:9px;margin:0;box-shadow:none;flex:none}
.az-drop.mini .ct-drop-ico svg{width:16px;height:16px}
.az-drop.mini b{font-size:12px;white-space:nowrap}.az-drop.mini small{display:none}
.az-drop.mini .az-name{margin:0 0 0 4px;max-width:160px}
.form-grid .az-drop{margin:2px 0}
.cnd-actions .az-drop.mini,.rec-actions .az-drop.mini,.doc-side .az-drop.mini,.pj-nf-actions .az-drop.mini{margin:0}
.cfg-logo .az-drop.mini{margin-bottom:6px}
/* certidões e declarações dentro da prestação mensal */
.rec-box{margin:14px 0;padding:0;background:transparent;border:0}
.rec-box .section-title{margin-top:0}
.rec-list.ct-file-list{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.rec-card .ct-file-thumb{height:150px}
.rec-card .az-drop:not(.mini){height:150px;min-height:150px;border-radius:0;padding:12px}
.rec-card .az-drop:not(.mini)::before{border-radius:0}
.rec-card .ct-file-info .pill{display:inline-block;margin:4px 0 2px}
.rec-card .rec-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;align-items:center}
.rec-card.st-ok,.rec-card.st-confirmada{box-shadow:inset 0 0 0 2px #bbf7d0,0 12px 26px -20px rgba(15,26,51,.5)}
.rec-card.st-info{box-shadow:inset 0 0 0 2px #fde68a,0 12px 26px -20px rgba(15,26,51,.5)}
.rec-card.st-warn,.rec-card.st-danger{box-shadow:inset 0 0 0 2px #fecaca,0 12px 26px -20px rgba(15,26,51,.5)}

/* v7.1 — Assinaturas no módulo Contratos, rescisão, link na lista do mês */
.pill.danger{background:#fdecec;color:#b32626}
.sign-table td{vertical-align:middle}
.sign-table .sign-funcao{width:150px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:12px;background:#fff}
.sign-table .sign-funcao:focus{border-color:#2563eb;outline:0;box-shadow:0 0 0 3px #dbeafe}
.sign-table .sign-acts{white-space:nowrap}
.sign-table .sign-acts .btn{margin:2px 2px 2px 0}
.sign-table tr.row-resc td{background:#fff7f7}
.pj-row-acts{white-space:nowrap}
.pj-row-acts .btn{margin-right:4px}
.pj-link-btn{color:#1d4ed8}

/* v7.2 — cabeçalho dos documentos igual ao PDF timbrado */
.doc-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:10px;margin-bottom:26px;border-bottom:3px solid transparent;border-image:linear-gradient(90deg,#0ea5e9,#2563eb,#38bdf8) 1}
.doc-logo{height:54px;max-height:54px;max-width:220px;object-fit:contain}
.doc-head-info{text-align:right;align-items:flex-end;gap:1px;line-height:1.35}
.doc-head-info strong{font-size:11px;color:#0f172a;white-space:nowrap}
.doc-head-info small{font-size:9.5px;color:#4b5875}
@media print{.doc-head{border-bottom:3px solid #2563eb;border-image:none}}

/* v7.2 — cadastro do colaborador: painéis alinhados, cartões de documentos no mesmo formato */
.pf-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;align-items:stretch}
.pf-panel>.pf-card{display:flex;flex-direction:column;min-width:0}
.pf-panel>.pf-card .pf-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));align-content:start}
.pf-card-wide,.pf-panel>.pf-card.pf-card-wide{grid-column:1/-1}
.cnd-grid{grid-template-columns:repeat(auto-fill,minmax(275px,1fr));gap:12px;align-items:stretch;margin:0 18px}
.cnd-wrap .empty-state,.cnd-wrap .docs-meta,.cnd-wrap .cnd-missing{margin-left:18px;margin-right:18px}
.cnd-card{min-height:190px;padding:12px 14px 10px;border-radius:14px;border:1px solid #e6ecf5;border-left:4px solid #c9d4e4;background:#fff;box-shadow:0 10px 24px -20px rgba(15,26,51,.5)}
.cnd-card header{min-height:34px}
.cnd-card header strong{font-size:12.5px}
.cnd-card .cnd-status{white-space:nowrap;font-size:10px}
.cnd-card .cnd-meta{flex:1}
.cnd-card .cnd-meta .cnd-none{font-size:11.5px;color:#b32626;font-style:italic}
.cnd-card .doc-flags{margin-top:2px}
.cnd-card .doc-flag{padding:3px 9px;font-size:10.5px}
.cnd-card .cnd-actions{margin-top:auto;padding-top:8px}
.cnd-card .cnd-actions .btn.small{padding:5px 9px;font-size:11px}
.cnd-card .az-drop.mini{padding:4px 10px 4px 5px}
.cnd-card .az-drop.mini .ct-drop-ico{width:24px;height:24px}
.cnd-card .az-drop.mini b{font-size:11px}
.cnd-card .doc-tpl{margin-bottom:2px}

/* v7.2 — cadeado do gestor no contrato */
.op-lock{display:flex;flex-direction:column;align-items:flex-end;gap:2px;margin-left:auto}
.op-lock small{font-size:10px;color:#8a95a8}
.op-lock-btn,.op-lock-badge{display:inline-flex;align-items:center;gap:7px;padding:6px 14px 6px 9px;border-radius:999px;border:1px solid #cfe0f5;background:#fff;color:#1d4ed8;font:inherit;font-size:12px;font-weight:800;cursor:pointer;transition:.2s}
.op-lock-btn svg,.op-lock-badge svg{width:16px;height:16px;fill:currentColor}
.op-lock-btn:hover{background:#eaf2ff}
.op-lock.on .op-lock-btn,.op-lock.on .op-lock-badge{background:linear-gradient(135deg,#f43f5e,#be123c);border-color:transparent;color:#fff;box-shadow:0 10px 22px -12px #be123c}
.op-lock-badge{cursor:default}
.op-lock.on ~ * .op-in{background:#f7f9fd}

/* v7.3 — só um Voltar (na barra fixa); botões do topo alinhados à direita */
.detail-top.pf-top{justify-content:flex-end}

/* v7.4 — cadastro do colaborador: navegação na linha dos botões, chips alinhados, contratos em cartões */
.pf-top2{gap:12px;align-items:center}
.pf-top2 .pf-jump{position:static;flex:1;padding:0;background:transparent;box-shadow:none;margin:0;min-width:0}
.pf-top2 .top-actions{flex:none}
.scope-card .pf-chips,.scope-card .pf-links{margin:0 18px 14px}
.scope-card .pf-chips{display:flex;flex-wrap:wrap;gap:8px}
.dcc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;margin:0 18px 14px}
.dcc{background:#fff;border:1px solid #e6ecf5;border-left:4px solid #9aa9bf;border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:8px;box-shadow:0 10px 24px -20px rgba(15,26,51,.5)}
.dcc-vigente{border-left-color:#10b981}.dcc-rascunho{border-left-color:#f59e0b}.dcc-encerrado,.dcc-cancelado{border-left-color:#c9d4e4;opacity:.8}
.dcc-resc{border-left-color:#e11d48}
.dcc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.dcc-num{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#7b8698;font-weight:800}
.dcc-head h4{margin:2px 0 0;font-size:13.5px;line-height:1.25;color:#182841}
.dcc-tpl{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.dcc-kv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:8px 10px;border-radius:10px;background:#f7f9fd}
.dcc-kv small{display:block;font-size:9.5px;color:#7b8698;text-transform:uppercase;letter-spacing:.06em;font-weight:800}
.dcc-kv b{display:block;font-size:12px;color:#182841;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dcc-acts{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin-top:auto;padding-top:6px;border-top:1px dashed #e6ebf3}
.dcc-acts .btn.small{padding:5px 9px;font-size:11px}

/* v8.0 — folha: link com histórico; plantões corrigidos à mão */
.fx-link.on{background:#e6f7f0;border-color:#b6e6d1;color:#0b6b4b}
.fx-link.on:hover{background:#d3f1e4}
tr.row-edited td{background:#fffbea}

/* v8.3 — tabela de cargos: clique na linha marca; linha marcada em azul claro */
.op-cat-wrap tbody tr{cursor:pointer;transition:background .15s}
.op-cat-wrap tbody tr:hover td{background:#f3f7ff}
.op-cat-wrap tbody tr.sel td{background:#dbeafe}
.op-cat-wrap tbody tr.op-cat-in{cursor:default}
.op-cat-wrap .cat-pick{width:16px;height:16px;cursor:pointer}
.cat-namecell{display:flex;align-items:center;gap:8px}
.cat-nm{font-weight:700;color:#182841;flex:1}
.cat-namecell .cat-name{flex:1}
.cat-edit{border:0;background:transparent;color:#8a95a8;cursor:pointer;font-size:13px;padding:2px 6px;border-radius:6px}
.cat-edit:hover{background:#eaf2ff;color:#1d4ed8}


/* ===== V8.3 — anexos esperados do contrato e lote de anexos na importação ===== */
.si-pasta .si-tabela{margin-top:10px}
.si-card.si-lote{border-style:dashed}
.si-card.si-lote .si-acoes{margin-top:8px}

/* v8.3 — miniatura do PDF: o visualizador renderiza em 4x e a miniatura reduz a 25%, assim o aviso "assinado digitalmente" do navegador fica pequeno como o resto da página */
.ct-file-thumb iframe{position:absolute;top:0;left:0;width:400%;height:400%;transform:scale(.25);transform-origin:0 0}

/* v8.3 — cabeçalho do contrato: a regra visual de .ct-hero.alert (mais específica) deixava o bloco em position:relative, e o top do modo fixo virava um deslocamento para baixo, por cima dos indicadores; sticky vale para os dois estados */
.ct-page .ct-hero,.ct-page .ct-hero.alert{position:sticky}


/* =====================================================================================
   v8.4 — BOTÕES "LAPIDADOS"
   Nova identidade dos botões do sistema inteiro: nada de pílulas. Retângulo com dois
   cantos cortados em 45° (superior esquerdo e inferior direito), aresta de 1px que
   acompanha o corte, preenchimento em degradê suave e varredura de luz no hover.
   O formato é feito com clip-path nos pseudo-elementos, então a sombra vem por
   filter: drop-shadow e segue o corte. Os tamanhos ficaram iguais aos antigos.
   ===================================================================================== */
.btn{
  --cut:9px;            /* tamanho do corte dos cantos */
  --edge:#cfd8e6;       /* cor da aresta */
  --edge-h:#2c63c9;     /* aresta no hover */
  --fill:#ffffff;       /* preenchimento */
  --fill2:#f3f7fd;
  --ink:#172033;        /* texto */
  --ink-h:#0f2a63;
  position:relative;isolation:isolate;
  border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;
  color:var(--ink);height:36px;padding:0 16px;font-weight:800;font-size:12px;letter-spacing:.012em;line-height:1;
  filter:drop-shadow(0 6px 10px rgba(15,26,51,.10));
  transition:transform .16s ease,filter .16s ease,color .16s ease;
}
.btn::before,.btn::after{
  content:"";position:absolute;z-index:-1;pointer-events:none;
  clip-path:polygon(var(--cut) 0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,0 100%,0 var(--cut));
  transition:background .18s ease,background-position .45s ease;
}
.btn::before{inset:0;background:var(--edge)}                                  /* aresta */
.btn::after{inset:1px;--cut:8.5px;background:linear-gradient(160deg,var(--fill),var(--fill2))}   /* preenchimento */
.btn:hover{transform:translateY(-1px);color:var(--ink-h);filter:drop-shadow(0 10px 16px rgba(15,26,51,.16))}
.btn:hover::before{background:var(--edge-h)}
.btn:active{transform:translateY(0) scale(.985);filter:drop-shadow(0 3px 6px rgba(15,26,51,.14))}
.btn:focus-visible{outline:2px solid #2c63c9;outline-offset:3px}
.btn[disabled],.btn.disabled{opacity:.45;cursor:not-allowed;transform:none;filter:none}
.btn svg{width:14px;height:14px;fill:currentColor;flex:none}

/* primário: azul-marinho profundo, aresta mais escura, luz que percorre o botão no hover */
.btn.primary{--edge:#0c2150;--edge-h:#3b7bff;--ink:#fff;--ink-h:#fff;filter:drop-shadow(0 10px 16px rgba(24,54,111,.32))}
.btn.primary::after{background:linear-gradient(120deg,#1b418f 0%,#2d63cc 38%,#16367a 62%,#0f2a63 100%);background-size:240% 100%;background-position:100% 0}
.btn.primary:hover{filter:drop-shadow(0 14px 22px rgba(24,54,111,.40))}
.btn.primary:hover::after{background-position:0 0}

/* suave (secundário): branco com aresta cinza-azulada; no hover a aresta e o texto ficam azuis */
.btn.soft{--edge:#cfd8e6;--fill:#fff;--fill2:#f3f7fd}
.btn.soft:hover::after{background:linear-gradient(160deg,#fff,#eaf1fb)}

/* perigo: vermelho contido */
.btn.danger{--edge:#ecc4c4;--edge-h:#d24b4b;--fill:#fff7f7;--fill2:#ffeaea;--ink:#9f2f2f;--ink-h:#8a1f1f}
.btn.danger.soft{--fill:#fff;--fill2:#fff3f3}
.btn.danger[disabled]{opacity:.45}

/* pequeno: mesmo desenho, corte menor, sem sombra (aparece em massa nas tabelas) */
.btn.small{height:28px;padding:0 11px;font-size:10.5px;--cut:7px;filter:none}
.btn.small::after{--cut:6.5px}
.btn.small:hover{filter:none}
.btn.small.primary{filter:drop-shadow(0 6px 10px rgba(24,54,111,.28))}
.btn.full{width:100%}

/* estados especiais que existiam com fundo próprio */
.btn.copiado,.pj-link-box .btn.copiado{--edge:#0c6b3b;--edge-h:#0c6b3b;--ink:#fff;--ink-h:#fff}
.btn.copiado::after{background:linear-gradient(160deg,#158a4c,#0f7a45)}
.btn.op-subs-btn.on{--edge:#c8bcff;--edge-h:#4c3aa3;--ink:#4c3aa3;--ink-h:#3a2a85}
.btn.op-subs-btn.on::after{background:linear-gradient(160deg,#efeaff,#e3dcff)}
.btn.fx-link.on{--edge:#b6e6d1;--edge-h:#0b6b4b;--ink:#0b6b4b;--ink-h:#08553b}
.btn.fx-link.on::after{background:linear-gradient(160deg,#ecfaf3,#d9f2e6)}
.pf-scope-btn{height:44px;padding:0 24px;font-size:14px;--cut:11px}
.pf-scope-btn::after{--cut:10.5px}

/* barra de ações do topo: os botões continuam alinhados; em telas estreitas cada um ocupa a linha inteira */
@media (max-width:760px){.top-actions .btn{flex:1}}

/* ---------- abas de navegação (páginas de município, colaborador): traço de acento no lugar da pílula ---------- */
.pf-jump-btn{border:0;border-radius:0;background:transparent;padding:9px 12px 8px;font-weight:700;font-size:13px;color:#5b6b85;
  box-shadow:inset 0 -2px 0 transparent;transition:color .15s,box-shadow .15s}
.pf-jump-btn:hover{border:0;background:transparent;color:#0f2a63;box-shadow:inset 0 -2px 0 #b9cdf0}
.pf-jump-btn.active{background:transparent;border:0;color:#0f2a63;box-shadow:inset 0 -3px 0 #2c63c9}
.pf-jump-btn .tab-count{margin-left:4px}
.pf-jump-btn.active .tab-count{background:#2c63c9;color:#fff}

/* voltar (barra fixa): mesmo corte, fundo escuro */
.pf-jump-back{border-radius:0;box-shadow:none;background:linear-gradient(135deg,#0f2757,#1e4aa0);padding:8px 16px 8px 14px;
  clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px)}
.pf-jump-back:hover{background:linear-gradient(135deg,#1b418f,#2d63cc)}
.pf-jump-ident{border-radius:6px}
.pf-jump-ident i{border-radius:5px}

/* controles do contrato (cadeado, alocação) e segmentado: cantos cortados, sem pílula */
.op-lock-btn,.op-lock-badge{border-radius:0;clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px)}
.op-lock.on .op-lock-btn,.op-lock.on .op-lock-badge{box-shadow:none}
.op-alloc-btn{border-radius:0;clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px)}
.seg{border-radius:0;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px)}
.seg-btn{border-radius:0}
.seg-btn.active{background:linear-gradient(135deg,#0f2757,#1e4aa0)}
.si-hist-btn{border-radius:4px}

/* botões de ícone (editar, excluir…): quadrado com um canto cortado */
.icon-btn{border-radius:0;clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px);transition:background .15s,color .15s}
.icon-btn.small{clip-path:polygon(5px 0,100% 0,100% calc(100% - 5px),calc(100% - 5px) 100%,0 100%,0 5px)}
.icon-btn.trash{border-radius:0}
.icon-btn:hover{background:#eaf1fb;color:#0f2a63}
.icon-btn.trash:hover{background:#fdecea;color:#a8231b}


/* =====================================================================================
   v8.6 — ABAS DOS MÓDULOS E MOVIMENTO
   Abas sem pílula: trilho claro com cantos cortados; a aba escolhida ganha uma placa
   azul-marinho que DESLIZA até ela (indicador .pj-ind, posicionado pelo ui-motion.js);
   as não escolhidas ficam num tom mais claro do mesmo azul. O conteúdo entra vindo do
   lado para onde se navegou; o módulo surge com um leve movimento e desfoque.
   ===================================================================================== */
.pj-tabs{position:relative;display:inline-flex;gap:2px;flex-wrap:wrap;padding:4px;margin:0 0 16px;border:0;border-radius:0;background:#e7edf7;max-width:100%;
  clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px)}
.pj-tabs.sub{margin:0;padding:4px}
.pj-tab{position:relative;z-index:1;border:0;border-radius:0;background:transparent;padding:8px 16px;font-weight:700;font-size:13px;letter-spacing:.005em;
  color:#7b8db0;cursor:pointer;transition:color .22s ease,transform .18s ease;white-space:nowrap}
.pj-tab:hover{background:transparent;color:#2c63c9}
.pj-tab.active{background:transparent;color:#fff}
.pj-tab:active{transform:scale(.97)}
.pj-tab:focus-visible{outline:2px solid #2c63c9;outline-offset:2px}
.pj-tab .nav-badge{position:static;margin-left:6px}
.pj-tab.active .nav-badge{background:rgba(255,255,255,.22);color:#fff}
.pj-ind{position:absolute;z-index:0;left:0;top:4px;width:0;height:0;opacity:0;pointer-events:none;
  background:linear-gradient(135deg,#0f2757,#1e4aa0);box-shadow:0 10px 20px -12px rgba(15,39,87,.75);
  clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);
  transition:left .3s cubic-bezier(.22,.8,.3,1),width .3s cubic-bezier(.22,.8,.3,1),top .3s cubic-bezier(.22,.8,.3,1),height .3s cubic-bezier(.22,.8,.3,1),opacity .2s}
/* o "☰ Cargos" abre um catálogo, não é uma aba de conteúdo: fica só com o texto */
#docsCargosBtn{color:#5b6b85}
#docsCargosBtn:hover{color:#0f2a63}

/* conteúdo entra do lado para onde se foi */
@keyframes tabSwapR{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}
@keyframes tabSwapL{from{opacity:0;transform:translateX(-28px)}to{opacity:1;transform:none}}
.tab-swap-r{animation:tabSwapR .26s cubic-bezier(.22,.8,.3,1) both}
.tab-swap-l{animation:tabSwapL .26s cubic-bezier(.22,.8,.3,1) both}

/* troca de módulo: surgimento rápido, com leve subida e desfoque que some */
@keyframes viewIn{from{opacity:0;transform:translateY(12px) scale(.992);filter:blur(5px)}to{opacity:1;transform:none;filter:blur(0)}}
.view.active{animation:viewIn .32s cubic-bezier(.22,.8,.3,1) both}
@keyframes headIn{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:none}}
.content-heading.head-in{animation:headIn .28s cubic-bezier(.22,.8,.3,1) both}
.edge-sidebar nav button{transition:background .22s ease,color .22s ease,border-color .22s ease,transform .18s ease}
.edge-sidebar nav button:active{transform:scale(.98)}

@media (prefers-reduced-motion:reduce){
  .tab-swap-r,.tab-swap-l,.view.active,.content-heading.head-in{animation:none}
  .pj-ind{transition:none}
}
@media (max-width:640px){.pj-tab{padding:7px 12px;font-size:12px}}

/* =====================================================================================
   v8.7 — FICHA DO PROFISSIONAL: cabeçalhos dos cartões e blocos internos alinhados
   · cabeçalho do cartão: título + descrição à esquerda (com quebra de linha), botões
     à direita; quando não cabem, o grupo de botões desce inteiro, alinhado à direita
   · regra, tabela, estado vazio e "Não possui contrato" respeitam a margem interna
   · tabela de prestações: números compactos à direita, competência ocupa o restante
   ===================================================================================== */
.pf-card .pf-card-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;min-height:54px;padding:10px 18px}
.pf-card .pf-card-head>div:first-child{flex:1 1 320px;min-width:0}
.pf-card .pf-card-head>div:first-child small{display:block;margin-top:3px;line-height:1.45;letter-spacing:0;text-transform:none;font-size:11.5px;color:#4a5d78;font-weight:500}
.pf-card .pf-card-head>div:first-child small strong{color:#1e3a8a}
.pf-card .pf-card-head>.btn,.pf-card .pf-card-head>.cnd-head-actions{flex:0 0 auto;margin-left:auto}
.pf-card .pf-card-head .cnd-head-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px}
.pf-card>.pf-regra,.pf-card>.table-wrap,.pf-card>.empty-state,.pf-card>.pf-declarar,.pf-card>p.muted{margin-left:18px;margin-right:18px}
.pf-card>.pf-regra{margin-top:2px;margin-bottom:10px}
.pf-card>.table-wrap{margin-bottom:6px}
.pf-card .pf-declarar{margin-top:8px;margin-bottom:4px}
.pf-card .data-table th.num,.pf-card .data-table td.num{width:1%;white-space:nowrap;padding-left:22px}
.pf-card .data-table th:last-child,.pf-card .data-table td:last-child{width:1%;white-space:nowrap}
.pf-card .data-table th{font-size:10px;letter-spacing:.1em}
.cnd-wrap .docs-meta{margin-top:2px}
.cnd-wrap .cnd-missing{margin-bottom:6px}
@media (max-width:760px){.pf-card .pf-card-head>.btn,.pf-card .pf-card-head>.cnd-head-actions{margin-left:0;width:100%;justify-content:flex-start}}

/* v8.7 — escolha do tipo de declaração (botão "+ Declaração" do painel) */
.decl-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-top:12px}
.decl-pick-btn{text-align:left;border:1px solid #d5dde9;background:#fff;padding:14px 16px;cursor:pointer;display:grid;gap:3px;font:inherit;color:#0f172a;transition:.16s;
  clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px)}
.decl-pick-btn b{font-size:13.5px;font-weight:800}
.decl-pick-btn small{font-size:11px;color:#6d7890;letter-spacing:.06em;text-transform:uppercase}
.decl-pick-btn:hover{border-color:#2c63c9;background:#eef4ff;transform:translateY(-1px)}

/* v8.8 — cartão "Valor do contrato": acordado (fixo, editado em Dados do contrato) e, abaixo, o calculado pelos cargos */
.op-kpi.main .op-agreed-fixed{display:flex;flex-direction:column;margin-top:2px;min-width:0}
.op-kpi.main .op-agreed-fixed strong{font-size:19px;color:#fff;letter-spacing:-.01em;line-height:1.2}
.op-kpi.main .op-agreed-none{font-size:13px!important;opacity:.85}
.op-kpi.main .op-agreed-hint{display:block;font-style:normal;font-size:10px;color:rgba(255,255,255,.72);margin-top:2px;line-height:1.3}
.op-computed{margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.28);display:grid;gap:1px}
.op-computed small{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.85)}
.op-computed small em{font-style:normal;text-transform:none;letter-spacing:0;color:rgba(255,255,255,.7)}
.op-computed strong{font-size:15px;color:#fff;line-height:1.2}
.op-computed-pct{font-size:10.5px;font-weight:700;color:rgba(255,255,255,.8)}
.op-computed-pct.neg{color:#ffd5d5}
.op-computed-pct.ok{color:#d9ffe8}

/* =====================================================================================
   v8.8 — INDICADORES DO CONTRATO em pastilhas lapidadas
   Mesmo corte de 45° dos botões, traço de cor fino, brilho suave no canto, número grande
   e barra de progresso onde existe proporção (postos usados/contratados, faturável/acordado).
   ===================================================================================== */
.op-sum{gap:10px}
.op-kpi{display:flex;flex-direction:column;border-radius:0;border:0;padding:12px 14px 12px 16px;
  background:linear-gradient(160deg,#ffffff,#f2f6fc);box-shadow:none;
  clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);
  transition:transform .18s ease,background .18s ease}
.op-kpi::before{width:3px;left:0;top:10px;bottom:0;opacity:.95}
.op-kpi::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(130px 70px at 100% 0,color-mix(in srgb,var(--k,#2f6fe0) 14%,transparent),transparent 72%)}
.op-kpi>*{position:relative;z-index:1}
.op-kpi:hover{transform:translateY(-2px);background:#fff}
.op-kpi small{font-size:9.5px;letter-spacing:.1em;color:#6d7890}
.op-kpi strong{font-size:20px;letter-spacing:-.02em;margin-top:4px;line-height:1.15;color:#0f172a}
.op-kpi strong em{font-size:11px;letter-spacing:0}
.op-kpi .op-bar{display:block;height:4px;margin-top:auto;padding-top:0;position:relative;background:#e3e9f3;overflow:hidden;
  clip-path:polygon(2px 0,100% 0,100% calc(100% - 2px),calc(100% - 2px) 100%,0 100%,0 2px)}
.op-kpi strong+.op-bar{margin-top:10px}
.op-kpi .op-bar::after{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--p,0%);background:var(--k,#2f6fe0);transition:width .55s cubic-bezier(.22,.8,.3,1)}
.op-kpi.neg{background:linear-gradient(160deg,#fff5f4,#ffe9e6)}
.op-kpi.neg::after{background:radial-gradient(130px 70px at 100% 0,rgba(179,38,38,.14),transparent 72%)}
.op-kpi.neg .op-bar::after{background:#b32626}
/* pastilha principal: azul-marinho com aurora, sem pílula */
.op-kpi.main{border-radius:0;box-shadow:none;background:linear-gradient(135deg,#0f2757 0%,#1b418f 52%,#2d63cc 100%);
  clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px)}
.op-kpi.main::after{background:radial-gradient(170px 100px at 100% 0,rgba(56,189,248,.42),transparent 70%),radial-gradient(130px 90px at 0 100%,rgba(147,197,253,.22),transparent 70%)}
.op-kpi.main:hover{transform:none;background:linear-gradient(135deg,#0f2757 0%,#1b418f 52%,#2d63cc 100%)}
.op-kpi.main small{letter-spacing:.1em}
@media (prefers-reduced-motion:reduce){.op-kpi,.op-kpi .op-bar::after{transition:none}}

/* v8.9 — lista Cadastro: "Abrir" e a lixeira lado a lado na mesma célula */
.pj-row-acts{white-space:nowrap}
.pj-row-acts .btn,.pj-row-acts .icon-btn{display:inline-flex;vertical-align:middle}
.pj-row-acts .icon-btn{width:28px;height:28px;margin-left:6px;place-items:center;justify-content:center}

/* =====================================================================================
   v8.9 — FICHA DO PROFISSIONAL: modais "Atuação" e "Vincular a um contrato"
   ===================================================================================== */
/* --- Atuação: colunas em painéis, pastilhas de seleção com caixa cortada, busca em linha --- */
.sc-body .scope-cols{gap:18px}
.sc-body .scope-col{background:#f7f9fd;border:1px solid #e4eaf2;padding:14px 14px 12px;min-width:0;
  clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px)}
.sc-body .scope-head{margin-bottom:10px}
.sc-body .scope-head .pf-sub{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#1e3a8a;font-weight:800}
.sc-body .scope-count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;margin-left:6px;background:#0f2a63;color:#fff;font-size:10.5px;font-weight:800;
  clip-path:polygon(5px 0,100% 0,100% calc(100% - 5px),calc(100% - 5px) 100%,0 100%,0 5px)}
.sc-body .scope-count:empty{display:none}
.sc-body .searchbox{background:#fff;border:1px solid #d5dde9;border-radius:0;height:36px;
  clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px)}
.sc-body .searchbox input{font-size:13px}
.sc-body .check-list{max-height:360px;border:0;border-radius:0;padding:0;background:transparent;display:grid;gap:6px;align-content:start}
.sc-tile{position:relative;display:flex;align-items:center;gap:10px;padding:9px 11px;background:#fff;border:1px solid #e0e7f1;border-radius:0;cursor:pointer;transition:.15s;
  clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px)}
.sc-tile input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.sc-tile .sc-box{width:18px;height:18px;flex:none;border:1.5px solid #b9c5d8;background:#fff;display:grid;place-items:center;transition:.15s;
  clip-path:polygon(4px 0,100% 0,100% calc(100% - 4px),calc(100% - 4px) 100%,0 100%,0 4px)}
.sc-tile .sc-box::after{content:"";width:9px;height:5px;border-left:2.5px solid #fff;border-bottom:2.5px solid #fff;transform:rotate(-45deg) translate(1px,-1px);opacity:0;transition:.15s}
.sc-tile .sc-name{flex:1;font-size:13.5px;font-weight:600;color:#172033;line-height:1.3;min-width:0}
.sc-tile .sc-name em{font-style:normal;font-size:10.5px;font-weight:800;letter-spacing:.06em;color:#6d7890;margin-left:5px}
.sc-tile .sc-name small{display:block;font-size:11px;color:#6d7890;font-weight:500}
.sc-tile:hover{border-color:#2c63c9;background:#f6f9ff}
.sc-tile:has(input:checked){background:linear-gradient(160deg,#eef4ff,#e3ecfd);border-color:#2c63c9}
.sc-tile:has(input:checked) .sc-box{background:#0f2a63;border-color:#0f2a63}
.sc-tile:has(input:checked) .sc-box::after{opacity:1}
.sc-tile:has(input:focus-visible){outline:2px solid #2c63c9;outline-offset:2px}
.sc-tile .star{flex:none;border:0;background:transparent;font-size:17px;line-height:1;color:#c9d2e0;cursor:pointer;padding:2px 4px;transition:.15s}
.sc-tile .star:hover{color:#d19a2b;transform:scale(1.15)}
.sc-tile .star.on{color:#d19a2b;text-shadow:0 0 10px rgba(209,154,43,.45)}
.sc-body .scope-aviso{display:block;margin-top:8px;font-size:11px;color:#6d7890}
.sc-body .form-actions{margin-top:16px}

/* --- Vincular a um contrato: cartões clicáveis por inteiro, filtro por município do colaborador --- */
.lk-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:10px 0 12px}
.lk-search{flex:1;min-width:240px;background:#fff;border:1px solid #d5dde9;border-radius:0;height:38px;
  clip-path:polygon(9px 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%,0 9px)}
.lk-chips{display:flex;gap:6px;flex-wrap:wrap}
.lk-chip{border:1px solid #d5dde9;background:#fff;color:#5b6b85;font:inherit;font-size:11.5px;font-weight:700;padding:8px 12px;cursor:pointer;transition:.15s;
  clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px)}
.lk-chip b{margin-left:5px;padding:1px 6px;background:#e7edf7;color:#0f2a63;font-size:10.5px}
.lk-chip:hover{border-color:#2c63c9;color:#0f2a63}
.lk-chip.on{background:#0f2a63;border-color:#0f2a63;color:#fff}
.lk-chip.on b{background:rgba(255,255,255,.2);color:#fff}
.lk-list{display:grid;gap:8px;max-height:min(440px,52vh);overflow:auto;padding:2px 2px 6px}
.lk-item{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:12px;align-items:center;text-align:left;width:100%;
  padding:11px 12px 11px 12px;background:#fff;border:1px solid #e0e7f1;font:inherit;color:#172033;cursor:pointer;transition:.15s;border-radius:0;
  clip-path:polygon(9px 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%,0 9px)}
.lk-item:hover{border-color:#2c63c9;background:#f6f9ff;transform:translateY(-1px)}
.lk-item:focus-visible{outline:2px solid #2c63c9;outline-offset:2px}
.lk-item.lk-off{opacity:.7}
.lk-av{width:38px;height:38px;display:grid;place-items:center;font-size:12px;font-weight:900;color:#fff;background:linear-gradient(135deg,#0f2757,#2d63cc);
  clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px)}
.lk-info{min-width:0;display:grid;gap:2px}
.lk-info b{font-size:13px;font-weight:800;line-height:1.3;overflow-wrap:anywhere}
.lk-info b em{font-style:normal;color:#2c63c9;margin-right:6px}
.lk-info small{font-size:11px;color:#6d7890}
.lk-go{flex:none;font-size:11.5px;font-weight:800;color:#0f2a63;white-space:nowrap;padding:7px 12px;background:#eef3fb;transition:.15s;
  clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px)}
.lk-go i{font-style:normal;margin-left:3px;transition:transform .15s}
.lk-item:hover .lk-go{background:#0f2a63;color:#fff}
.lk-item:hover .lk-go i{transform:translateX(3px)}
@media (max-width:640px){.lk-item{grid-template-columns:32px minmax(0,1fr)}.lk-go{display:none}}

/* =====================================================================================
   v9.0 — TABELA DE CARGOS DO CONTRATO: padrão único
   Títulos e conteúdos das colunas de quantidade e valores centralizados; cargo à esquerda;
   campos editáveis discretos e centralizados; coluna limitadora sem brilho animado;
   histórico em linha menor sob o valor; linhas com zebra suave e realce ao passar o mouse.
   ===================================================================================== */
/* valor calculado na pastilha azul legível */
.op-kpi.main .op-computed strong{color:#fff}
.op-kpi.main .op-computed small{color:rgba(255,255,255,.85)}
.op-kpi.main .op-computed small em{color:rgba(255,255,255,.7)}

/* cabeçalho */
.ct-page .op-panel{padding:0;border:0}
.op-table th,.ct-page .op-table thead th{text-align:center;font-size:9.5px;letter-spacing:.1em;color:#5b6b85;padding:11px 8px;background:#fff;box-shadow:inset 0 -2px 0 #dfe6f0;border-radius:0}
.op-table th:first-child{text-align:left;padding-left:14px}
.op-table th.th-lim,.ct-page .op-table thead th.th-lim,.ct-page .op-table th.th-lim.dom,.op-table th.th-lim.dom{background:#fff;animation:none;color:#5b6b85;box-shadow:inset 0 -2px 0 #dfe6f0;padding:11px 8px}
.op-table th.th-lim:hover{background:#f3f7fd;color:#0f2a63}
.op-table th.th-lim.dom,.ct-page .op-table thead th.th-lim.dom{color:#0f2a63;box-shadow:inset 0 -3px 0 #0f2a63}
.op-table th.th-lim i,.op-table th.th-lim.dom i{display:inline-block;margin-left:6px;padding:2px 7px;border-radius:0;font-size:9px;letter-spacing:.06em;background:#e7edf7;color:#5b6b85;vertical-align:middle;
  clip-path:polygon(4px 0,100% 0,100% calc(100% - 4px),calc(100% - 4px) 100%,0 100%,0 4px)}
.op-table th.th-lim.dom i{background:#0f2a63;color:#fff}

/* células */
.op-table td{padding:6px 8px;border-bottom:1px solid #edf1f7;font-size:12.5px;color:#172033}
.op-table td:first-child{padding-left:14px;text-align:left}
.op-table td.num,.op-table th.num{text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums}
.op-table td:last-child,.op-table th:last-child{text-align:center;width:44px}
.op-table tbody tr:nth-child(even) td{background:#fbfcfe}
.op-table tbody tr:hover td{background:#f4f8ff}
.op-table tbody tr.over td{background:#fff5f4}
.op-cell{display:flex;flex-direction:column;align-items:center;gap:1px}
.op-table td:first-child .op-cell{align-items:flex-start}
.op-log{display:block;padding:0;font-size:9px;color:#a3adbf;text-align:center;line-height:1.2}
.op-table td:first-child .op-log{text-align:left}
.op-log:hover{color:#2c63c9}

/* campos editáveis: discretos, centralizados, corte fino */
.op-table .op-in,.op-table.compact .op-in{width:112px;max-width:100%;margin:0 auto;padding:5px 8px;border:1px solid transparent;border-radius:0;background:#f4f7fc;font-size:12.5px;font-weight:700;color:#0f172a;text-align:center;transition:.15s;
  clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px)}
.op-table td:first-child .op-in{width:100%;text-align:left;font-weight:700}
.op-table .op-in:hover{background:#eef3fb;border-color:#c9d5e6}
.op-table .op-in:focus{background:#fff;border-color:#2c63c9;box-shadow:inset 0 0 0 1px #2c63c9;outline:0}
.op-in.op-saved{background:#e4f6ec!important;border-color:#8fd3ae!important}

/* postos usados: botão de alocação sem brilho, centralizado */
.op-alloc-btn{margin:0 auto;padding:4px 10px 4px 7px;border:1px solid #d5dde9;background:#fff;box-shadow:none;transform:none}
.op-alloc-btn svg{width:16px;height:16px;fill:#2c63c9;filter:none;animation:none}
.op-alloc-btn .op-used{font-size:12.5px;font-weight:800;color:#0f172a}
.op-alloc-btn:hover{border-color:#2c63c9;background:#eef3fb;transform:none;box-shadow:none}
.op-alloc-btn.ok{border-color:#b6e5cb;background:#f3fbf6}.op-alloc-btn.ok svg{fill:#116b3f;filter:none}
.op-alloc-btn.neg{border-color:#f4b9b3;background:#fff1f0}.op-alloc-btn.neg svg{fill:#b32626;filter:none}
.op-used{border-radius:0;clip-path:polygon(5px 0,100% 0,100% calc(100% - 5px),calc(100% - 5px) 100%,0 100%,0 5px)}

/* remover cargo */
.op-del{width:26px;height:26px;display:inline-grid;place-items:center;opacity:1;color:#b7c2d3;font-size:15px;line-height:1;transition:.15s;
  clip-path:polygon(5px 0,100% 0,100% calc(100% - 5px),calc(100% - 5px) 100%,0 100%,0 5px)}
.op-del:hover{background:#fdecea;color:#b32626;opacity:1}

/* totais */
.op-table tfoot th{text-align:center;background:#f3f6fb;color:#0f172a;font-size:11.5px;letter-spacing:.02em;text-transform:none;padding:11px 8px;box-shadow:inset 0 2px 0 #dfe6f0;font-variant-numeric:tabular-nums}
.op-table tfoot th:first-child{text-align:left;padding-left:14px;letter-spacing:.1em;text-transform:uppercase;font-size:9.5px;color:#5b6b85}

/* ferramentas abaixo da tabela */
.ct-page .op-tools{margin-top:12px;padding:12px 14px 14px;border-top:1px solid #edf1f7;background:#fbfcfe}
@media (prefers-reduced-motion:reduce){.op-table tbody tr td,.op-table .op-in{transition:none}}
.ct-page .op-table thead th:first-child,.op-table tfoot th:first-child{text-align:left}
.op-table td:first-child .op-in{background:transparent;padding-left:4px}
.op-table td:first-child .op-in:hover{background:#eef3fb}

/* v9.0 — anexos do contrato: arrastar para reordenar e clicar no nome para renomear */
.ct-file[draggable="true"]{cursor:grab}
.ct-file[draggable="true"]:active{cursor:grabbing}
.ct-file.dragging{opacity:.35;transform:scale(.97)}
.ct-file.drop-side::after{content:"";position:absolute;top:10px;bottom:10px;width:3px;background:#2c63c9;z-index:3;pointer-events:none}
.ct-file.drop-side.before::after{left:2px}
.ct-file.drop-side.after::after{right:2px}
.ct-file-grip{position:absolute;top:6px;left:8px;z-index:2;color:#fff;background:rgba(15,26,51,.55);font-size:12px;letter-spacing:-3px;padding:3px 6px 3px 4px;line-height:1;pointer-events:none;
  clip-path:polygon(4px 0,100% 0,100% calc(100% - 4px),calc(100% - 4px) 100%,0 100%,0 4px)}
.ct-file-name{cursor:text;border-bottom:1px dashed transparent;transition:.15s;display:block}
.ct-file-name:hover{color:#2c63c9;border-bottom-color:#9fc4f5}
.ct-file-rename{width:100%;font:inherit;font-size:13px;font-weight:700;line-height:1.25;border:1px solid #2c63c9;background:#fff;padding:3px 6px;outline:0;box-shadow:inset 0 0 0 1px #2c63c9;border-radius:0;
  clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px)}

/* v9.0 — pastilha principal: valor mensal editável, valor total do contrato em destaque abaixo */
.op-kpi.main .op-agreed{margin-top:4px;min-width:0}
.op-kpi.main .op-agreed input{height:34px;border:0;border-radius:0;background:rgba(255,255,255,.94);color:#0f1a33;font-size:16px;font-weight:800;padding:0 10px;margin:0;
  clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px)}
.op-kpi.main .op-agreed input:focus{outline:0;background:#fff;box-shadow:inset 0 0 0 2px #38bdf8}
.op-kpi.main .op-agreed-hint b{color:#fff;font-weight:800}

.op-kpi.main .op-agreed-hint i{font-style:normal;color:rgba(255,255,255,.65)}

/* v9.1 — indicadores em 2 linhas × 3 ao lado da pastilha azul (sem espaço vazio) e percentuais legíveis no azul */
.op-sumwrap{grid-template-columns:minmax(0,1fr) 250px;gap:10px;align-items:stretch}
.op-sumwrap .op-sum{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:10px}
.op-sumwrap .op-kpi{justify-content:center;padding:10px 14px 10px 16px}
.op-sumwrap .op-kpi strong{font-size:19px}
.op-sumwrap .op-kpi strong+.op-bar{margin-top:8px}
.op-kpi.main .op-computed-pct.neg{color:#ffcc4d!important;font-weight:800}
.op-kpi.main .op-computed-pct.ok{color:#7dffb3!important;font-weight:800}
.op-kpi.main .op-computed-pct{font-weight:800;color:rgba(255,255,255,.85)}
@media (max-width:1100px){.op-sumwrap .op-sum{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.op-sumwrap{grid-template-columns:1fr}.op-sumwrap .op-sum{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* =====================================================================================
   v9.1 — PRESTAÇÃO DE CONTAS › PAINEL (cascata contratos › grupos › profissionais)
   ===================================================================================== */
@keyframes fdIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.fd-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.fd-comp{display:flex;align-items:center;gap:4px}
.fd-comp-btn{width:30px;height:36px;border:1px solid #d5dde9;background:#fff;font:inherit;font-size:20px;line-height:1;cursor:pointer;color:#0f2a63;transition:.15s;
  clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px)}
.fd-comp-btn:hover{background:#0f2a63;color:#fff;border-color:#0f2a63}
.fd-crumbs{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.fd-crumbs i{font-style:normal;color:#98a2b5}
.fd-crumb{border:1px solid #d5dde9;background:#fff;color:#5b6b85;font:inherit;font-size:12px;font-weight:700;padding:7px 12px;cursor:pointer;transition:.15s;
  clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px)}
.fd-crumb:hover{border-color:#2c63c9;color:#0f2a63}
.fd-crumb.on{background:#0f2a63;border-color:#0f2a63;color:#fff;cursor:default}

/* faixa principal */
.fd-hero{display:grid;grid-template-columns:minmax(0,1.25fr) auto minmax(0,1.6fr);gap:22px;align-items:center;margin-top:14px;padding:20px 24px;color:#fff;
  background:linear-gradient(135deg,#0f2757 0%,#1b418f 52%,#2d63cc 100%);animation:fdIn .45s cubic-bezier(.2,.7,.2,1) both;
  clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px)}
.fd-hero-main{min-width:0}
.fd-hero-main>small{display:block;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.fd-hero-main h2{margin:4px 0 0;font-size:18px;font-weight:800;line-height:1.25;letter-spacing:-.01em;color:#fff;overflow-wrap:anywhere}
.fd-hero-main p{margin:4px 0 0;font-size:12px;color:rgba(255,255,255,.72)}
.fd-hero-big{margin-top:14px}
.fd-hero-big small{display:block;font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.8)}
.fd-hero-big small em{font-style:normal;color:rgba(255,255,255,.55);text-transform:none;letter-spacing:0;font-weight:600}
.fd-hero-big strong{display:block;font-size:34px;font-weight:900;letter-spacing:-.03em;line-height:1.1;margin-top:2px;font-variant-numeric:tabular-nums;color:#fff}
.fd-ring{position:relative;width:112px;height:112px;flex:none}
.fd-ring svg{width:112px;height:112px;transform:rotate(-90deg)}
.fd-ring circle{fill:none;stroke-width:9}
.fd-ring-bg{stroke:rgba(255,255,255,.16)}
.fd-ring-fg{stroke:#7dffb3;stroke-linecap:round;stroke-dasharray:251.3px;stroke-dashoffset:251.3px;transition:stroke-dashoffset 1.1s cubic-bezier(.2,.7,.2,1)}
.fd-ready .fd-ring-fg{stroke-dashoffset:calc(251.3px - 251.3px * var(--p,0) / 100)}
.fd-ring.neg .fd-ring-fg{stroke:#ff8a80}
.fd-ring>div{position:absolute;inset:0;display:grid;place-content:center;text-align:center}
.fd-ring strong{display:block;font-size:19px;font-weight:900;letter-spacing:-.02em;color:#fff;font-variant-numeric:tabular-nums}
.fd-ring small{display:block;font-size:9.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.7);margin-top:1px}
.fd-hero-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0}
.fd-hk{padding:10px 12px;background:rgba(255,255,255,.09);min-width:0;
  clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px)}
.fd-hk small{display:block;font-size:9.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.72)}
.fd-hk strong{display:block;font-size:16.5px;font-weight:800;letter-spacing:-.02em;margin-top:3px;font-variant-numeric:tabular-nums;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fd-hk strong em{font-style:normal;font-size:12px;color:rgba(255,255,255,.6);font-weight:700}
.fd-hk span{display:block;font-size:10.5px;color:rgba(255,255,255,.7);margin-top:4px}
.fd-mini{display:block;height:4px;background:rgba(255,255,255,.18);margin-top:7px;overflow:hidden}
.fd-mini>i{display:block;height:100%;width:0;background:#7dffb3;transition:width .9s cubic-bezier(.2,.7,.2,1)}
.fd-ready .fd-mini>i{width:var(--p,0%)}
.fd-hk.neg .fd-mini>i{background:#ff8a80}
.fd-hk.neg strong{color:#ffcc4d}

/* aviso de orientação */
.fd-dica{display:flex;gap:10px;align-items:flex-start;margin-top:12px;padding:11px 14px;background:#fff8e6;border:1px solid #f1dfae;color:#5b4a13;font-size:12.5px;line-height:1.45;
  clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px)}
.fd-dica>span{font-size:16px;line-height:1;color:#b7801a}

/* colunas: lista + lateral */
.fd-cols{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:14px;margin-top:14px;align-items:start}
.fd-list{background:#fff;border:1px solid #e0e7f1;
  clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px)}
.fd-list-head,.fd-row{display:grid;grid-template-columns:44px minmax(0,1fr) 60px 118px 128px 128px 108px 22px;gap:10px;align-items:center;padding:10px 14px}
.fd-list-head{font-size:9.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#6d7890;background:#f6f8fc;border-bottom:1px solid #e6ecf4}
.fd-list-head .num{text-align:right}
.fd-list-head>span:first-child{grid-column:1 / 3}
.fd-row{border-bottom:1px solid #eef2f7;cursor:pointer;color:#172033;transition:background .15s;animation:fdIn .5s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i,0) * 45ms + 120ms)}
.fd-row:hover{background:#f5f9ff}
.fd-row:focus-visible{outline:2px solid #2c63c9;outline-offset:-2px}
.fd-row:last-child{border-bottom:0}
.fd-row.dim{opacity:.55}
.fd-row.dim:hover{opacity:1}
.fd-row-t{min-width:0}
.fd-row-t em{display:block;font-style:normal;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#2c63c9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fd-row-t b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;font-weight:800;line-height:1.3;color:#0f172a;overflow:hidden;overflow-wrap:anywhere}
.fd-share{display:block;height:5px;background:#eaf0f8;margin-top:6px;overflow:hidden;max-width:360px}
.fd-share>i{display:block;height:100%;width:0;background:linear-gradient(90deg,#2c63c9,#38bdf8);transition:width .9s cubic-bezier(.2,.7,.2,1)}
.fd-ready .fd-share>i{width:var(--p,0%)}
.fd-row .num{text-align:right;font-variant-numeric:tabular-nums;font-size:12.5px;font-weight:700;color:#0f172a;white-space:nowrap}
.fd-row .num small{display:block;font-size:10px;font-weight:700;color:#7b8db0}
.fd-row .num.neg,.fd-row .num.neg small{color:#b32626}
.fd-row .fd-strong,.fd-table td.fd-strong{font-weight:900;color:#0f2a63}
.fd-n2{font-size:14px!important;font-weight:900!important}
.fd-av{width:40px;height:40px;flex:none;display:grid;place-items:center;font-size:12px;font-weight:900;color:#fff;background:linear-gradient(135deg,#0f2757,#2d63cc);
  clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px)}
.fd-av.fd-ico{font-size:18px;background:#e7edf7;color:#0f2a63}
.fd-chev{color:#98a2b5;font-size:20px;line-height:1;text-align:center;transition:transform .15s,color .15s}
.fd-row:hover .fd-chev{transform:translateX(3px);color:#2c63c9}

/* lateral: composição */
.fd-side{display:grid;gap:14px;min-width:0}
.fd-side-card{background:#fff;border:1px solid #e0e7f1;padding:14px 16px 16px;animation:fdIn .5s cubic-bezier(.2,.7,.2,1) both;animation-delay:.18s;
  clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px)}
.fd-side-card header b{display:block;font-size:13.5px;font-weight:900;color:#0f172a}
.fd-side-card header small{display:block;font-size:11px;color:#6d7890;margin-top:2px}
.fd-stack{display:flex;height:12px;background:#eaf0f8;overflow:hidden;margin:12px 0 8px;gap:2px;
  clip-path:polygon(4px 0,100% 0,100% calc(100% - 4px),calc(100% - 4px) 100%,0 100%,0 4px)}
.fd-stack>i{display:block;height:100%;flex:0 0 0%;transition:flex-basis .9s cubic-bezier(.2,.7,.2,1)}
.fd-ready .fd-stack>i{flex-basis:var(--p,0%)}
.fd-stack-sm{height:8px;margin:0}
.fd-mix{display:grid}
.fd-mix-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto auto 44px;gap:8px;align-items:center;width:100%;padding:8px 0;border:0;border-bottom:1px dashed #e6ecf4;background:none;font:inherit;color:#172033;text-align:left}
button.fd-mix-row{cursor:pointer;transition:background .15s}
button.fd-mix-row:hover{background:#f5f9ff}
.fd-mix-row:last-child{border-bottom:0}
.fd-mix-row i{width:10px;height:10px;border-radius:2px}
.fd-mix-row b{font-size:12px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fd-mix-row span{font-size:11px;color:#6d7890;white-space:nowrap}
.fd-mix-row strong{font-size:12px;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.fd-mix-row small{font-size:11px;font-weight:800;color:#2c63c9;text-align:right;font-variant-numeric:tabular-nums}
.fd-empty-mini{padding:14px 0 6px;font-size:12px;color:#6d7890}
.fd-pfpj{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;margin-top:14px;padding-top:12px;border-top:1px solid #e6ecf4}
.fd-pfpj small{display:block;font-size:9.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#6d7890}
.fd-pfpj strong{display:block;font-size:18px;font-weight:900;color:#0f172a;line-height:1.1;margin-top:2px}
.fd-pfpj span{display:block;font-size:11px;color:#6d7890;font-variant-numeric:tabular-nums}
.fd-pfpj .r{text-align:right}

/* nível dos profissionais */
.fd-head-ct{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:16px 0 4px}
.fd-head-ct h3{margin:0;font-size:16px;font-weight:900;letter-spacing:-.01em;color:#0f172a}
.fd-head-ct small{display:block;color:#6d7890;font-size:12px;margin-top:2px}
.fd-q{min-width:260px}
.fd-panel{margin-top:10px}
.fd-table th.num,.fd-table td.num{text-align:center}
.fd-table td.num.neg{color:#b32626;font-weight:800}
.fd-tr{animation:fdIn .4s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i,0) * 30ms + 100ms)}
.fd-table tr.fd-sum th{background:#f3f6fb;text-transform:none;font-size:11.5px;color:#0f172a;letter-spacing:0;padding:10px 9px;box-shadow:inset 0 2px 0 #dfe6f0}
.fd-table tr.fd-sum th.neg{color:#b32626}

@media (max-width:1180px){.fd-cols{grid-template-columns:1fr}.fd-hero{grid-template-columns:minmax(0,1fr) auto}.fd-hero-kpis{grid-column:1 / -1}}
@media (max-width:900px){.fd-list-head,.fd-row{grid-template-columns:40px minmax(0,1fr) 50px 110px 110px 22px}.fd-list-head>:nth-child(3),.fd-row>:nth-child(4),.fd-list-head>:nth-child(6),.fd-row>:nth-child(7){display:none}.fd-hero{grid-template-columns:1fr}.fd-ring{display:none}}
@media (prefers-reduced-motion:reduce){.fd-hero,.fd-row,.fd-side-card,.fd-tr{animation:none}.fd-share>i,.fd-mini>i,.fd-stack>i,.fd-ring-fg{transition:none}}
@media print{.fd-bar{display:none}.fd-hero{-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* v9.2 — Prestação de contas › contrato: funções, centros de custo (unidade / profissão) */
.fd-hero-bigs{display:flex;gap:26px;flex-wrap:wrap;align-items:flex-end}
.fd-hero-fat strong{color:#7dffb3}
.fd-hero-fat span{display:block;font-size:11px;color:rgba(255,255,255,.7);margin-top:2px}
.fd-seg{display:flex;flex-wrap:wrap;gap:6px;margin:16px 0 2px}
.fd-seg-btn{display:inline-flex;align-items:center;gap:8px;border:1px solid #d5dde9;background:#fff;color:#5b6b85;font:inherit;font-size:12.5px;font-weight:800;padding:9px 14px;cursor:pointer;transition:.15s;
  clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px)}
.fd-seg-btn b{font-size:10.5px;font-weight:900;padding:2px 7px;background:#eef2f8;color:#0f2a63;border-radius:0;clip-path:polygon(4px 0,100% 0,100% calc(100% - 4px),calc(100% - 4px) 100%,0 100%,0 4px)}
.fd-seg-btn:hover{border-color:#2c63c9;color:#0f2a63}
.fd-seg-btn.on{background:#0f2a63;border-color:#0f2a63;color:#fff}
.fd-seg-btn.on b{background:rgba(255,255,255,.18);color:#fff}
.fd-ftab td,.fd-ftab th{vertical-align:middle}
.fd-ftab td.num,.fd-ftab th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.fd-ftab tr.dim td{opacity:.55}
.fd-ftab tr.dim:hover td{opacity:1}
.fd-ftab td strong{font-weight:700;color:#0f172a}
.fd-prof{font-weight:800;color:#0f2a63;font-size:12px}
.fd-tag{display:inline-block;margin-top:3px;font-size:10px;font-weight:700;color:#8a6d3b;background:#fff4dc;padding:2px 7px;clip-path:polygon(4px 0,100% 0,100% calc(100% - 4px),calc(100% - 4px) 100%,0 100%,0 4px)}
.fd-ftab tfoot tr.fd-sum th{text-align:right}
.fd-ftab tfoot tr.fd-sum th:first-child{text-align:left}
.fd-ftab tfoot small{display:block;font-size:10px;color:#7b8db0;font-weight:700}
/* linhas por unidade / profissão */
.fd-uhead,.fd-urow{grid-template-columns:56px minmax(0,1fr) 84px 76px 64px 118px 128px 132px 22px}
.fd-phead,.fd-prow{grid-template-columns:44px minmax(0,1fr) 90px 80px 118px 76px 140px 22px}
.fd-av.fd-code{font-size:10px;letter-spacing:.02em;padding:0 4px;text-align:center;line-height:1.1;width:48px;overflow-wrap:anywhere}
.fd-row.open{background:#f5f9ff}
.fd-row.open .fd-chev{color:#2c63c9}
.fd-utotal{cursor:default;background:#f3f6fb;font-weight:800;animation:none}
.fd-utotal:hover{background:#f3f6fb}
.fd-sub{padding:6px 14px 14px 70px;background:#f9fbfe;border-bottom:1px solid #e6ecf4;animation:fdIn .3s cubic-bezier(.2,.7,.2,1) both}
.fd-sub table{width:100%}
.fd-sub .data-table th{font-size:9.5px}
.fd-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0 10px}
.fd-chips>small{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#6d7890;margin-right:4px}
.fd-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;background:#fff;border:1px solid #dfe6f0;font-size:11px;font-variant-numeric:tabular-nums;clip-path:polygon(5px 0,100% 0,100% calc(100% - 5px),calc(100% - 5px) 100%,0 100%,0 5px)}
.fd-chip b{color:#0f2a63}
.fd-row .num small{display:block}
@media (max-width:1180px){.fd-uhead,.fd-urow{grid-template-columns:56px minmax(0,1fr) 76px 64px 132px 22px}.fd-uhead>:nth-child(2),.fd-urow>:nth-child(3),.fd-uhead>:nth-child(5),.fd-urow>:nth-child(6),.fd-uhead>:nth-child(6),.fd-urow>:nth-child(7){display:none}
  .fd-phead,.fd-prow{grid-template-columns:44px minmax(0,1fr) 80px 118px 140px 22px}.fd-phead>:nth-child(2),.fd-prow>:nth-child(3),.fd-phead>:nth-child(5),.fd-prow>:nth-child(6){display:none}.fd-sub{padding-left:14px}}

/* v9.2b — faturamento importado nos níveis de município e contrato */
.fd-hero-sec strong{font-size:22px!important;color:rgba(255,255,255,.88)!important}
.fd-hero-sec small{color:rgba(255,255,255,.65)}
.fd-vtag{display:block;font-size:9px!important;font-weight:900!important;letter-spacing:.1em;color:#0e9f8f!important;text-transform:uppercase}

/* v9.3 — ponto eletrônico na relação de profissionais */
.fd-ponto{color:#5b6b85;font-size:10.5px}
.si-confirm-txt{white-space:pre-line;font-size:13.5px;line-height:1.5;color:#172033;margin:4px 0 14px}

/* v9.3b — margem só com custo completo */
.fd-ring.off .fd-ring-bg{stroke:rgba(255,255,255,.12)}
.fd-ring.off strong{color:rgba(255,255,255,.75)}
.fd-hk span{overflow-wrap:anywhere}

/* v9.4 — ficha do colaborador: acesso rápido no cabeçalho, unidades e município → contrato → cargo */
.pf-quick{position:relative;margin-left:auto;display:flex;align-items:center;flex:0 1 210px;min-width:160px;max-width:260px}
.pf-quick-ico{position:absolute;left:11px;color:#7b8698;font-size:14px;pointer-events:none}
.pf-quick input{width:100%;border:1px solid #d9e1ec;border-radius:999px;padding:7px 12px 7px 30px;font:inherit;font-size:12.5px;background:#fff;color:#182841;outline:none;transition:border-color .15s,box-shadow .15s}
.pf-quick input::placeholder{color:#94a0b4}
.pf-quick input:focus{border-color:#2c63c9;box-shadow:0 0 0 3px rgba(44,99,201,.15)}
.pf-quick-list{position:absolute;top:calc(100% + 6px);right:0;width:min(360px,92vw);background:#fff;border:1px solid #dbe3ee;border-radius:14px;box-shadow:0 18px 40px -18px rgba(16,40,69,.45);padding:6px;z-index:60;max-height:360px;overflow:auto}
.pf-quick-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:0;background:transparent;border-radius:10px;padding:7px 9px;cursor:pointer;font:inherit;color:#182841}
.pf-quick-item i{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:linear-gradient(135deg,#102845,#2f6fe0);color:#fff;font-style:normal;font-weight:800;font-size:11px;flex:none}
.pf-quick-item>span{display:grid;line-height:1.15;min-width:0;flex:1}
.pf-quick-item b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-quick-item small{font-size:11px;color:#7b8698;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-quick-item em{font-style:normal;font-size:11px;color:#2c63c9;font-weight:700;flex:none}
.pf-quick-item.atual{opacity:.55}
.pf-quick-item:hover,.pf-quick-item.sel{background:#eef4ff}
.pf-quick-empty{padding:10px 12px;font-size:12.5px;color:#7b8698}
.pf-chips .chip.lg.chip-star{border-color:#f0b429;background:#fff8e6;color:#7a4d00}
.pf-muncontratos{margin:0 18px 16px;display:grid;gap:10px}
.pf-mc{border:1px solid #e3e9f2;border-radius:12px;padding:10px 12px;background:#f9fbfe}
.pf-mc-head{display:flex;align-items:baseline;gap:8px;margin-bottom:6px;flex-wrap:wrap}
.pf-mc-head b{font-size:13.5px;color:#182841}.pf-mc-head small{color:#7b8698;font-size:11.5px}
.pf-mc-list{display:grid;gap:6px}
.pf-mc-item{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #e3e9f2;border-radius:10px;padding:8px 10px}
.pf-mc-item.on{border-color:#bfe3c9;background:#f3fbf5}
.pf-mc-item.off{opacity:.65}
.pf-mc-info{flex:1;display:grid;line-height:1.2;min-width:0}
.pf-mc-info b{font-size:13px;color:#182841}.pf-mc-info b em{font-style:normal;color:#2c63c9;margin-right:6px}
.pf-mc-info small{font-size:11.5px;color:#7b8698}
.pf-mc-fn{font-size:12px;color:#3d5a80}.pf-mc-fn i{color:#b23c3c;font-style:normal}
.pf-mc-vazio{margin:0 18px 16px;font-size:12.5px;color:#7b8698}
.modal .pf-muncontratos{margin:0 0 12px}
@media(max-width:820px){.pf-quick{flex-basis:100%;max-width:none;margin-left:0}.pf-mc-item{flex-wrap:wrap}}
.pf-mc-list{grid-template-columns:repeat(auto-fill,minmax(min(420px,100%),1fr))}
.pf-mc-item .btn{flex:none}
/* v9.4b — cartão do contrato do município: nome em cima, cargo e botão embaixo */
.pf-mc-item{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"info info" "fn act";align-items:center;gap:8px 10px}
.pf-mc-item .pf-mc-info{grid-area:info}
.pf-mc-item .pf-mc-fn{grid-area:fn;min-width:0}
.pf-mc-item .btn{grid-area:act;justify-self:end}
.pf-mc-item:not(.on) .btn{grid-column:1/-1;justify-self:start}
.pf-mc-list{grid-template-columns:repeat(auto-fill,minmax(min(360px,100%),1fr))}

/* v9.4c — formulário do colaborador: município → unidade → contrato → cargo */
.pfx{border:1px solid #dfe7f3;border-radius:14px;background:linear-gradient(180deg,#f7faff,#fff);padding:12px 14px 10px}
.pfx-head{display:grid;gap:2px;margin-bottom:10px}
.pfx-head b{font-size:13.5px;color:#182841}.pfx-head small{font-size:11.5px;color:#7b8698;font-weight:400}
.pfx-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px}
.pfx-step{display:grid;gap:5px;margin:0}
.pfx-step>span{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:#4a5d78}
.pfx-step>span small{font-weight:400;color:#94a0b4}
.pfx-step i{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:10.5px;font-weight:800;background:#e3eaf5;color:#4a5d78;transition:background .2s,color .2s}
.pfx-step.on i{background:#2c63c9;color:#fff}
.pfx-step.off{opacity:.6}
.pfx-step select{width:100%;min-width:0}
.pfx-note{margin-top:9px;font-size:12px;color:#3d5a80;line-height:1.45;min-height:17px}
.pfx-note b{color:#182841}
@media(max-width:560px){.pfx-grid{grid-template-columns:1fr}}

/* v9.4 — RH · Folha do mês: painel compacto, relação com filtros por coluna e ficha do mês */
.rh-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.rh-comp{display:flex;align-items:center;gap:4px}
.rh-comp input{padding:7px 10px;border:1px solid #d6deea;border-radius:10px;font:inherit;font-size:12.5px;background:#fff}
.rh-nav{width:30px;height:32px;border:1px solid #d6deea;border-radius:9px;background:#fff;color:#4a5d78;font-size:16px;line-height:1}
.rh-nav:hover{border-color:#2c63c9;color:#2c63c9}
.rh-comp-l{margin-left:6px;font-size:12px;color:#5b6b85;font-weight:600}
.rh-busca{flex:1;min-width:220px}
.rh-acts{display:flex;gap:8px;margin-left:auto}
.rh-aviso{margin:0 0 10px;padding:9px 12px;border-radius:10px;background:#fff6e5;border:1px solid #f3d9a4;color:#7a4d00;font-size:12px}
.rh-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:7px;margin-bottom:10px}
.rh-kpi{position:relative;display:grid;gap:2px;text-align:left;padding:8px 10px 8px 13px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;font:inherit;color:var(--text);transition:transform .12s,box-shadow .12s,border-color .12s;overflow:hidden}
.rh-kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--c)}
.rh-kpi small{font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:#7b8698;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rh-kpi strong{font-size:19px;line-height:1.1;color:#182841}
.rh-kpi em{font-style:normal;font-size:9.5px;color:#7b8698}
.rh-kpi:hover{transform:translateY(-1px);box-shadow:0 8px 20px -12px rgba(23,32,51,.4);border-color:color-mix(in srgb,var(--c) 45%,#fff)}
.rh-kpi.sel{border-color:var(--c);box-shadow:0 0 0 2px color-mix(in srgb,var(--c) 25%,transparent)}
.rh-kpi.sel strong{color:var(--c)}
.rh-panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 12px 6px;box-shadow:0 7px 22px rgba(27,39,68,.03)}
.rh-panel-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px;font-size:12px}
.rh-panel-h b{color:#182841;font-size:12.5px}
.rh-panel-h small{color:#7b8698;font-size:11px;margin-left:auto}
.rh-ftag{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;border-radius:999px;background:#eef4ff;color:#2c63c9;font-weight:700;font-size:11px}
.rh-ftag i{font-style:normal;cursor:pointer;opacity:.7}.rh-ftag i:hover{opacity:1}
.rh-table{width:100%;border-collapse:separate;border-spacing:0;font-size:11px}
.rh-table th{position:sticky;top:0;z-index:1;text-align:center;font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#5b6b85;padding:6px 6px;background:#f6f8fc;border-bottom:1px solid var(--line);white-space:nowrap;cursor:pointer;user-select:none}
.rh-table th.esq,.rh-table td.esq{text-align:left}
.rh-table th i{font-style:normal;margin-left:4px;font-size:8px;opacity:.45}
.rh-table th.on{color:#2c63c9}.rh-table th.on i{opacity:1}
.rh-table th:hover{color:#2c63c9}
.rh-table tr.rh-filtros th{top:26px;padding:3px 4px 6px;background:#fbfcfe;cursor:default;border-bottom:1px solid var(--line-strong)}
.rh-table tr.rh-filtros input,.rh-table tr.rh-filtros select{width:100%;min-width:0;padding:4px 6px;border:1px solid #dde4ee;border-radius:7px;font:inherit;font-size:10.5px;background:#fff;color:#182841;text-align:center}
.rh-table tr.rh-filtros th:first-child input{text-align:left}
.rh-table tr.rh-filtros input:focus,.rh-table tr.rh-filtros select:focus{outline:none;border-color:#2c63c9}
.rh-table td{padding:6px 6px;border-bottom:1px solid #eef1f5;vertical-align:middle;text-align:center;line-height:1.25}
.rh-table td.num{font-variant-numeric:tabular-nums}
.rh-table td small{display:block;font-size:9.5px;color:#7b8698;font-weight:400}
.rh-table td b.zero{color:#be3434}
.rh-table td b.falta{color:#bd5a1f}
.rh-table tr.rh-row{cursor:pointer;transition:background .1s}
.rh-table tr.rh-row:hover td{background:#f3f7ff}
.rh-table tr.rh-sem td{color:#7b8698}
.rh-table tr.rh-sem td.esq b{color:#5b6b85}
.rh-table td.esq b{font-size:11.5px;color:#182841}
.rh-cargo{display:inline-block;max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.rh-vazio{padding:22px;color:#7b8698;text-align:center}
.rh-sit{display:inline-block;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:700;background:#eef2f7;color:#4a5d78}
.rh-sit-ativo{background:#e6f6ec;color:#1b6b45}.rh-sit-pj{background:#eef4ff;color:#2c63c9}.rh-sit-rpa{background:#eef4ff;color:#2c63c9}
.rh-sit-afastado{background:#fff4e0;color:#8a5a00}.rh-sit-rescisao{background:#fde9e9;color:#b23c3c}.rh-sit-licenca{background:#f3e8ff;color:#6b21a8}.rh-sit-pcd{background:#e0f2fe;color:#075985}
.rh-ocs{white-space:nowrap}
.rh-oc{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;margin:1px 2px;border-radius:999px;font-size:9.5px;font-weight:700;background:#eef2f7;color:#4a5d78;border:1px solid transparent}
.rh-oc b{font-weight:800}
.rh-oc-ferias{background:#e0f2fe;color:#075985}.rh-oc-falta{background:#fde9e9;color:#b23c3c}.rh-oc-falta_justificada{background:#fff4e0;color:#8a5a00}
.rh-oc-atestado{background:#fff4e0;color:#8a5a00}.rh-oc-afastamento{background:#fff4e0;color:#8a5a00}.rh-oc-licenca_maternidade{background:#f3e8ff;color:#6b21a8}
.rh-oc-rescisao{background:#fde9e9;color:#b23c3c}.rh-oc-atividade{background:#fde9e9;color:#b23c3c}.rh-oc-rpa{background:#eef4ff;color:#2c63c9}.rh-oc-admissao_clt{background:#e6f6ec;color:#1b6b45}
.rh-oc-remanejamento{background:#e0f7fa;color:#0e6b75}.rh-oc-alteracao_carga{background:#eef2f7;color:#4a5d78}.rh-oc.mais{background:#dfe6f0}
.rh-al{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:700;color:#7b8698}
.rh-al::before{content:"";width:7px;height:7px;border-radius:50%;background:#cbd3df}
.rh-al-alto{color:#b23c3c}.rh-al-alto::before{background:#be3434}
.rh-al-medio{color:#8a5a00}.rh-al-medio::before{background:#e5a100}
.rh-al-info{color:#2c63c9}.rh-al-info::before{background:#2c63c9}
.rh-busca-lista{display:grid;gap:4px;margin-top:10px}
.rh-busca-item{display:grid;text-align:left;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:#fff;font:inherit;cursor:pointer}
.rh-busca-item:hover{border-color:#2c63c9;background:#f3f7ff}
.rh-busca-item small{color:#7b8698;font-size:11px}
/* ficha do mês */
.rh-sub{color:#7b8698;font-size:12px}.rh-sub a{color:#2c63c9;font-weight:700}
.rh-ficha{padding:14px 18px 16px}
.rh-ficha-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:16px;align-items:start}
.rh-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 12px}
.rh-f{display:grid;gap:4px;margin:0}
.rh-f>span{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:#7b8698;font-weight:800}
.rh-f input,.rh-f select,.rh-f textarea{width:100%;padding:7px 9px;border:1px solid #d6deea;border-radius:9px;font:inherit;font-size:12.5px;background:#fff}
.rh-f input:disabled,.rh-f select:disabled,.rh-f textarea:disabled{background:#f6f8fc;color:#5b6b85}
.rh-f-dias input{font-size:22px;font-weight:800;color:#182841;padding:4px 10px}
.rh-f-obs{grid-column:1/-1}
.rh-check{display:flex;align-items:center;gap:6px;padding:7px 0;font-size:12.5px;text-transform:none;letter-spacing:0}
.rh-check input{width:auto}
.rh-alertas{display:grid;gap:5px;margin-top:12px}
.rh-alerta{display:flex;gap:8px;align-items:flex-start;padding:7px 10px;border-radius:9px;font-size:11.5px;line-height:1.35;background:#f6f8fc;color:#4a5d78}
.rh-alerta i{flex:none;width:8px;height:8px;border-radius:50%;margin-top:4px;background:#cbd3df}
.rh-alerta.alto{background:#fde9e9;color:#8f2b2b}.rh-alerta.alto i{background:#be3434}
.rh-alerta.medio{background:#fff4e0;color:#6b4600}.rh-alerta.medio i{background:#e5a100}
.rh-alerta.info{background:#eef4ff;color:#274a8f}.rh-alerta.info i{background:#2c63c9}
.rh-alerta.ok{background:#e6f6ec;color:#1b6b45}.rh-alerta.ok i{background:#23865c}
.rh-cal-wrap{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fbfcfe}
.rh-cal-h{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:8px}
.rh-cal-h b{font-size:12.5px;color:#182841}.rh-cal-h small{font-size:10.5px;color:#7b8698}
.rh-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.rh-dow{text-align:center;font-size:9.5px;font-weight:800;color:#98a2b5;padding-bottom:2px}
.rh-dia{aspect-ratio:1;border:1px solid transparent;border-radius:8px;font:inherit;font-size:11.5px;font-weight:700;background:#f1f4f9;color:#98a2b5;cursor:default;transition:transform .1s,box-shadow .1s}
.rh-dia.ed{cursor:pointer}.rh-dia.ed:hover{transform:translateY(-1px);box-shadow:0 4px 10px -6px rgba(23,32,51,.5)}
.rh-dia.fds{border-color:#e3e9f2}
.rh-d-livre{background:#f1f4f9;color:#98a2b5}
.rh-d-trabalhado{background:#23865c;color:#fff}
.rh-d-falta{background:#be3434;color:#fff}
.rh-d-falta_justificada{background:#f59e0b;color:#fff}
.rh-d-ferias{background:#0ea5e9;color:#fff}
.rh-d-atestado{background:#c18d16;color:#fff}
.rh-d-afastamento{background:#a16207;color:#fff}
.rh-d-licenca{background:#a855f7;color:#fff}
.rh-d-rpa{background:#64748b;color:#fff}
.rh-d-desligado{background:#e5e7eb;color:#9ca3af;text-decoration:line-through}
.rh-d-nao_admitido{background:#e5e7eb;color:#9ca3af}
.rh-legenda{display:flex;flex-wrap:wrap;gap:6px 10px;margin:10px 0 6px;font-size:10px;color:#5b6b85}
.rh-legenda span{display:inline-flex;align-items:center;gap:4px}
.rh-legenda i{width:10px;height:10px;border-radius:3px;display:inline-block}
.rh-ev{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}
.rh-ev-h{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}.rh-ev-h b{font-size:12.5px;color:#182841}.rh-ev-h small{font-size:10.5px;color:#7b8698}
.rh-ev-lista{display:grid;gap:5px}
.rh-ev-item{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:6px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:11.5px}
.rh-ev-item.no-mes{border-color:#cfe0ff;background:#f7faff}
.rh-ev-item b{color:#182841;white-space:nowrap}.rh-ev-item small{color:#7b8698;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rh-ev-item .icon-btn{width:28px;height:28px}
.rh-ev-vazio{padding:8px 0;font-size:11.5px;color:#7b8698}
.rh-ev-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;padding:10px;border:1px dashed #cfd8e6;border-radius:10px;background:#fbfcfe}
.rh-ev-form select,.rh-ev-form input:not([type=checkbox]){padding:6px 8px;border:1px solid #d6deea;border-radius:8px;font:inherit;font-size:12px;background:#fff}
.rh-ev-form label{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:#5b6b85}
.rh-ev-form input[name=descricao]{flex:1;min-width:160px}
.rh-ficha .rh-actions{position:sticky;bottom:-16px;z-index:2;align-items:center;margin:12px -18px -16px;padding:10px 18px 14px;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-top:1px solid var(--line)}
.rh-status{margin-right:auto;font-size:11px;color:#7b8698}
@media(max-width:900px){.rh-ficha-grid{grid-template-columns:1fr}.rh-form-grid{grid-template-columns:1fr}.rh-acts{margin-left:0}.rh-cargo{max-width:120px}}

/* v9.4 — usuários: compartilhar link de nova senha */
.reset-share{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}

/* v9.4b — ficha do mês: cabeçalho com nome em destaque, situação segmentada, ações rápidas, valores, prévia */
.modal-head.rh-head{align-items:center;gap:14px}
.rh-head-l{display:flex;align-items:center;gap:16px;min-width:0;flex:1}
.rh-nome{display:flex;align-items:center;gap:10px;border:0;background:transparent;padding:4px 8px 4px 4px;margin:-4px 0 -4px -4px;border-radius:12px;text-align:left;font:inherit;cursor:pointer;min-width:0;transition:background .15s}
.rh-nome:hover{background:#eef4ff}
.rh-nome i{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#102845,#2f6fe0);color:#fff;font-style:normal;font-weight:800;font-size:13px;flex:none}
.rh-nome>span{display:grid;min-width:0}
.rh-nome b{font-size:17px;color:#182841;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rh-nome small{font-size:11.5px;color:#7b8698;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rh-nome small u{color:#2c63c9;text-decoration:none;font-weight:700}
.rh-nome:hover small u{text-decoration:underline}
.rh-head-comp{display:grid;line-height:1.1;padding-left:16px;border-left:1px solid var(--line)}
.rh-head-comp small{font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:#7b8698;font-weight:800}
.rh-head-comp b{font-size:14px;color:#182841}
.rh-head-r{display:flex;gap:8px;margin-right:6px}
.rh-hk{display:grid;min-width:88px;padding:6px 10px;border-radius:10px;background:#f6f8fc;border:1px solid var(--line);text-align:right}
.rh-hk small{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:#7b8698;font-weight:800}
.rh-hk b{font-size:13.5px;color:#182841;font-variant-numeric:tabular-nums}
.rh-f-wide{margin-bottom:10px}
.rh-seg{display:flex;flex-wrap:wrap;gap:5px}
.rh-seg-b{border:1px solid #d6deea;background:#fff;border-radius:999px;padding:5px 11px;font:inherit;font-size:11.5px;font-weight:700;color:#5b6b85;cursor:pointer;transition:background .12s,color .12s,border-color .12s}
.rh-seg-b:hover{border-color:#2c63c9;color:#2c63c9}
.rh-seg-b.on{background:#182841;border-color:#182841;color:#fff}
.rh-seg-b.on.rh-sit-ativo{background:#1b6b45;border-color:#1b6b45}.rh-seg-b.on.rh-sit-rescisao{background:#b23c3c;border-color:#b23c3c}.rh-seg-b.on.rh-sit-afastado{background:#8a5a00;border-color:#8a5a00}.rh-seg-b.on.rh-sit-licenca{background:#6b21a8;border-color:#6b21a8}.rh-seg-b.on.rh-sit-pj,.rh-seg-b.on.rh-sit-rpa{background:#2c63c9;border-color:#2c63c9}.rh-seg-b.on.rh-sit-pcd{background:#075985;border-color:#075985}
.rh-seg-b:disabled{cursor:default;opacity:.7}
.rh-dias-wrap{display:flex;align-items:center;gap:10px}
.rh-dias-wrap .rh-dias{width:96px}
.rh-quick{display:flex;gap:4px;flex-wrap:wrap}
.rh-quick button{border:1px solid #d6deea;background:#fff;border-radius:8px;padding:5px 9px;font:inherit;font-size:11px;font-weight:700;color:#4a5d78;cursor:pointer}
.rh-quick button:hover{border-color:#2c63c9;color:#2c63c9;background:#f3f7ff}
.rh-switch{padding:8px 0;font-size:12.5px;color:#182841;font-weight:600}
.rh-switch.sm{padding:0;font-size:11.5px;color:#5b6b85}
.rh-switch.sm i{width:28px;height:16px}.rh-switch.sm i::after{width:12px;height:12px;top:2px}
.u-switch.sm input:checked + i::after{left:13px}
.rh-f select{appearance:none;-webkit-appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%238b97b3' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E") no-repeat right 8px center;background-size:16px;padding-right:28px}
.rh-val{margin-top:12px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fbfcfe}
.rh-val-h{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:0 0 8px}
.rh-val-h b{font-size:12px;color:#182841}.rh-val-h small{font-size:10.5px;color:#7b8698}
.rh-val-h+.rh-val-grid+.rh-val-h{margin-top:12px;padding-top:10px;border-top:1px dashed #dfe6f0}
.rh-val-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:6px}
.rh-val-i{display:grid;gap:1px;padding:7px 9px;border-radius:9px;background:#fff;border:1px solid #e9eef5;min-width:0}
.rh-val-i small{font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#7b8698;font-weight:800}
.rh-val-i b{font-size:13.5px;color:#182841;font-variant-numeric:tabular-nums}
.rh-val-i em{font-style:normal;font-size:10px;color:#7b8698;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rh-val-i.dest b{color:#2c63c9}.rh-val-i.ok b{color:#1b6b45}.rh-val-i.neg b{color:#b23c3c}
.rh-val-nota{font-size:11px;color:#7b8698;padding:4px 0 0}
.rh-legenda.inline{display:block;margin:10px 0 4px;font-size:10.5px;color:#5b6b85;line-height:1.9}
.rh-legenda.inline span{display:inline;margin-right:10px;white-space:nowrap}
.rh-legenda.inline i{margin-right:4px;vertical-align:-1px}
.rh-cal-dica{font-size:10.5px;color:#7b8698;line-height:1.4;margin-top:4px}
.rh-cal-dica b{color:#4a5d78}
.rh-dia.prev{outline:2px dashed #182841;outline-offset:-2px;opacity:.9}
.rh-dia.prev-ferias{outline-color:#0ea5e9}.rh-dia.prev-atestado,.rh-dia.prev-afastamento{outline-color:#c18d16}.rh-dia.prev-licenca{outline-color:#a855f7}.rh-dia.prev-falta{outline-color:#be3434}.rh-dia.prev-falta_justificada{outline-color:#f59e0b}.rh-dia.prev-rpa{outline-color:#64748b}
.rh-ev-form{margin:0 0 10px}
.rh-ev-tipo{min-width:200px}
@media(max-width:900px){.rh-head-r{display:none}.rh-head-comp{display:none}}

/* v9.4b — usuários: perfil e acessos por módulo, compactos */
.pm-body{padding:14px 18px 16px}
.pm-login{font-size:12px;color:#7b8698;font-weight:600}
.pm-top{display:grid;grid-template-columns:auto auto 1fr;gap:10px 18px;align-items:end;padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:10px}
.pm-f{display:grid;gap:5px}
.pm-f>span{font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:#7b8698;font-weight:800}
.pm-f>span em{font-style:normal;text-transform:none;letter-spacing:0;font-weight:600}
.pm-seg{display:inline-flex;border:1px solid #d6deea;border-radius:999px;padding:2px;background:#fff}
.pm-seg button{border:0;background:transparent;border-radius:999px;padding:5px 12px;font:inherit;font-size:11.5px;font-weight:700;color:#5b6b85;cursor:pointer}
.pm-seg button.on{background:#182841;color:#fff}
.pm-horas{display:flex;align-items:center;gap:6px}
.pm-horas input{padding:5px 8px;border:1px solid #d6deea;border-radius:8px;font:inherit;font-size:12px}
.pm-horas i{font-style:normal;font-size:11px;color:#7b8698}
.pm-sub{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:0 0 8px}
.pm-sub b{font-size:12px;color:#182841}.pm-sub small{font-size:10.5px;color:#7b8698}.pm-sub a{color:#2c63c9;font-weight:700;text-decoration:none}
.pm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}
.pm-mod{border:1px solid var(--line);border-radius:12px;background:#fbfcfe;padding:8px 10px}
.pm-mod-h{display:flex;align-items:center;gap:8px;margin-bottom:5px}
.pm-mod-h b{font-size:12px;color:#182841;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pm-cnt{font-size:10px;color:#7b8698;font-weight:700}
.pm-list{display:grid;gap:2px}
.pm-item{display:flex;align-items:center;gap:7px;padding:3px 4px;border-radius:7px;font-size:11.5px;color:#3d5a80;cursor:pointer;user-select:none}
.pm-item:hover{background:#eef4ff}
.pm-item input{display:none}
.pm-item i{position:relative;width:26px;height:15px;border-radius:999px;background:#cdd5e1;flex:none;transition:.15s}
.pm-item i::after{content:"";position:absolute;top:2px;left:2px;width:11px;height:11px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(20,30,53,.25);transition:.15s}
.pm-item input:checked+i{background:#23865c}.pm-item input:checked+i::after{left:13px}
.pm-item input:checked~span{color:#182841;font-weight:600}
@media(max-width:760px){.pm-top{grid-template-columns:1fr}}

/* v9.4c — ficha limpa: valores com ações, sem textos de apoio */
.rh-val-h{position:relative}
.rh-val-acts{margin-left:auto;display:flex;gap:6px}
.rh-val-acts .btn.small{padding:4px 9px;font-size:11px}
.rh-ev-h{margin-bottom:6px}
.rh-status{font-size:11px;color:#7b8698}
.rh-ficha .rh-alertas:empty{display:none}
.rh-f-obs{grid-column:1/-1}

/* v9.5 — prestação por modelo de contratação */
.pill.pc-pf{background:#e6f6ec;color:#1b6b45}.pill.pc-pj{background:#eef4ff;color:#2c63c9}.pill.pc-medico{background:#f3e8ff;color:#6b21a8}
.rh-res{padding:14px 18px 16px;display:grid;gap:10px}
.rh-res-linha{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.rh-res .rh-val-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.rh-res .rh-val-h{margin:4px 0 0}
.rh-res .form-actions{margin-top:4px}
@media(max-width:640px){.rh-res .rh-val-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v9.5b — voltar à prestação PF */
.modal-head .rh-voltar{margin-right:12px;white-space:nowrap;align-self:center}

/* v9.5c — rodapé da barra: nome à esquerda, dia e hora à direita */
.sidebar-bottom .user-mini{justify-content:flex-start}
.user-mini>div:first-of-type{flex:1}
.sb-relogio{display:grid;text-align:right;line-height:1.1;flex:none}
.sb-relogio b{font-size:12.5px;color:#dce6ff;font-variant-numeric:tabular-nums}
.sb-relogio small{font-size:8.5px;color:#8896af;text-transform:capitalize}

/* v9.5d — menu organizável (cadeado) */
.nav-lock{position:absolute;left:10px;top:10px;width:22px;height:22px;border:0;border-radius:7px;background:transparent;color:rgba(136,150,175,.45);padding:0;display:grid;place-items:center;cursor:pointer;z-index:2}
.nav-lock svg{width:13px;height:13px}
.nav-lock:hover{color:#dce6ff;background:rgba(255,255,255,.06)}
.nav-lock.open{color:#fbbf24;background:rgba(245,158,11,.18)}
.sidebar-scroll{position:relative}
.edge-sidebar nav.menu-edit button{cursor:grab;border-color:rgba(139,163,230,.28);background:rgba(255,255,255,.03)}
.edge-sidebar nav.menu-edit button::after{content:"⠿";margin-left:auto;opacity:.5;font-size:12px}
.edge-sidebar nav.menu-edit button.dragging{opacity:.4}
.edge-sidebar nav.menu-edit button.nav-first{background:linear-gradient(90deg,rgba(245,158,11,.35),rgba(245,158,11,.08));border-color:#f59e0b;color:#fff}
.edge-sidebar nav.menu-edit button.nav-first .nav-icon{color:#fbbf24}
.edge-sidebar nav.menu-edit button.nav-first::before{content:"tela inicial";position:absolute;right:30px;font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:#fbbf24;opacity:.9}
.edge-sidebar nav.menu-edit button{position:relative}

/* v9.5e — prestação PF corrida: campos juntos, seleção moderna, botões grandes com nuvens */
.rh-ficha{padding:12px 16px 14px}
.rh-ficha-grid{gap:14px}
.rh-form-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 8px}
.rh-f{gap:3px}
.rh-f>span{font-size:9px;color:#8896af}
.rh-f input,.rh-f select{padding:6px 8px;font-size:12px;border-radius:8px;border-color:#e1e7f0;background:#f8fafd}
.rh-f input:focus,.rh-f select:focus{outline:none;border-color:#2c63c9;background:#fff;box-shadow:0 0 0 3px rgba(44,99,201,.12)}
.rh-f-dias{grid-column:span 2}
.rh-f-obs{grid-column:span 2}
.rh-dias-wrap .rh-dias{width:74px;font-size:18px;padding:3px 8px}
.rh-quick{gap:3px}.rh-quick button{padding:4px 8px;font-size:10.5px;border-radius:7px}
.rh-f-wide{margin-bottom:6px}
.rh-seg{gap:4px}
.rh-seg-b{padding:4px 10px;font-size:11px;border-color:#e1e7f0;background:#f8fafd;color:#5b6b85}
.rh-seg-b.on{background:linear-gradient(135deg,#1e3a8a,#2c63c9);border-color:transparent;color:#fff;box-shadow:0 6px 14px -8px #2c63c9}
.rh-seg-b.on.rh-sit-ativo{background:linear-gradient(135deg,#166534,#23865c)}.rh-seg-b.on.rh-sit-rescisao{background:linear-gradient(135deg,#991b1b,#be3434)}.rh-seg-b.on.rh-sit-afastado{background:linear-gradient(135deg,#92400e,#c18d16)}.rh-seg-b.on.rh-sit-licenca{background:linear-gradient(135deg,#6b21a8,#a855f7)}.rh-seg-b.on.rh-sit-pj,.rh-seg-b.on.rh-sit-rpa{background:linear-gradient(135deg,#1e3a8a,#2c63c9)}.rh-seg-b.on.rh-sit-pcd{background:linear-gradient(135deg,#075985,#0ea5e9)}
.rh-val{margin-top:8px;padding:8px 10px}
.rh-val-grid{gap:5px}.rh-val-i{padding:5px 8px}.rh-val-i b{font-size:12.5px}
.rh-cal-wrap{padding:10px}
.rh-cal{gap:3px}.rh-dia{font-size:11px;border-radius:7px}
.rh-alertas{margin-top:8px}
.rh-ev{margin-top:10px;padding-top:8px}
.rh-cta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.rh-cta:empty{display:none}
.rh-cta-b{position:relative;overflow:hidden;border:0;border-radius:14px;padding:14px 16px;text-align:left;color:#fff;font:inherit;cursor:pointer;background:#123a8a;box-shadow:0 14px 30px -16px rgba(18,58,138,.9);transition:transform .15s,box-shadow .15s;isolation:isolate}
.rh-cta-b.alt{background:#0b4a7a}
.rh-cta-b:hover{transform:translateY(-2px);box-shadow:0 20px 34px -16px rgba(18,58,138,.95)}
.rh-cta-b span{position:relative;z-index:2;display:grid;gap:2px}
.rh-cta-b small{font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;opacity:.85;font-weight:700}
.rh-cta-b b{font-size:16px;letter-spacing:-.01em}
.rh-cta-b i{position:absolute;border-radius:50%;filter:blur(18px);opacity:.75;z-index:1;pointer-events:none;animation:rhNuvem 9s ease-in-out infinite}
.rh-cta-b .n1{width:150px;height:90px;left:-30px;top:-30px;background:#38bdf8}
.rh-cta-b .n2{width:180px;height:100px;right:-40px;top:-10px;background:#6366f1;animation-delay:-3s;animation-duration:11s}
.rh-cta-b .n3{width:140px;height:80px;left:35%;bottom:-40px;background:#0ea5e9;animation-delay:-6s;animation-duration:13s}
.rh-cta-b.alt .n1{background:#22d3ee}.rh-cta-b.alt .n2{background:#2563eb}.rh-cta-b.alt .n3{background:#8b5cf6}
@keyframes rhNuvem{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(22px,8px) scale(1.12)}66%{transform:translate(-14px,-10px) scale(.94)}}
@media(prefers-reduced-motion:reduce){.rh-cta-b i{animation:none}}
@media(max-width:900px){.rh-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rh-cta{grid-template-columns:1fr}}

/* v9.5f — cargos em tela fixa (RH › Cargos) */
.op-catalog-page{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px 18px 18px;box-shadow:0 7px 22px rgba(27,39,68,.03)}
.op-cat-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.op-cat-head h2{margin:2px 0 4px;font-size:18px;color:#182841}
.op-catalog-page .op-cat-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.op-catalog-page .op-cat-top #catQ{flex:1;min-width:240px;padding:9px 12px;border:1px solid #d6deea;border-radius:10px;font:inherit;font-size:13px}
.op-catalog-page .op-cat-wrap{max-height:none;border:1px solid var(--line);border-radius:12px}
.op-catalog-page .op-table th{font-size:9.5px;padding:9px 10px;background:#f6f8fc}
.op-catalog-page .op-table td{padding:8px 10px;font-size:12px}
.op-catalog-page .op-cat-new{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding:12px;border:1px dashed #cfd8e6;border-radius:12px;background:#fbfcfe}
.op-catalog-page .op-cat-new input{padding:8px 10px;border:1px solid #d6deea;border-radius:9px;font:inherit;font-size:12.5px}
.op-catalog-page .op-cat-new #catNewName{flex:1;min-width:220px}

/* v9.5g — cabeçalho com nuvens, paleta de pintura, dias metálicos animados */
.modal-head.rh-head-nuvens{position:sticky;overflow:hidden;background:#0f2a63;border-bottom:0;color:#fff;isolation:isolate}
.rh-head-nuvens>i{position:absolute;border-radius:50%;filter:blur(26px);opacity:.7;z-index:0;pointer-events:none;animation:rhNuvem 12s ease-in-out infinite}
.rh-head-nuvens .n1{width:320px;height:160px;left:-60px;top:-70px;background:#38bdf8}
.rh-head-nuvens .n2{width:360px;height:180px;left:35%;top:-90px;background:#6366f1;animation-delay:-4s;animation-duration:15s}
.rh-head-nuvens .n3{width:300px;height:150px;right:-60px;top:-40px;background:#0ea5e9;animation-delay:-8s;animation-duration:17s}
.rh-head-nuvens .n4{width:260px;height:140px;right:28%;bottom:-90px;background:#2563eb;animation-delay:-2s;animation-duration:14s}
.rh-head-nuvens>*:not(i){position:relative;z-index:1}
.rh-head-nuvens .rh-nome b,.rh-head-nuvens .rh-head-comp b{color:#fff}
.rh-head-nuvens .rh-nome small,.rh-head-nuvens .rh-head-comp small{color:rgba(255,255,255,.75)}
.rh-head-nuvens .rh-nome small u{color:#a5f3fc}
.rh-head-nuvens .rh-nome:hover{background:rgba(255,255,255,.1)}
.rh-head-nuvens .rh-nome i{background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35)}
.rh-head-nuvens .rh-head-comp{border-left-color:rgba(255,255,255,.25)}
.rh-head-nuvens .rh-hk{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.2)}
.rh-head-nuvens .rh-hk small{color:rgba(255,255,255,.7)}.rh-head-nuvens .rh-hk b{color:#fff}
.rh-head-nuvens .icon-btn{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.3);color:#fff}
.rh-head-nuvens .rh-voltar{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.3);color:#fff}
.rh-cargo-chip{display:inline-block;font-style:normal;font-size:10px;font-weight:700;padding:1px 7px;margin-right:4px;border-radius:999px;background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.3)}
.rh-ficha-grid{grid-template-columns:minmax(0,1fr) 520px}
.rh-cal-grid{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:12px;align-items:start}
.rh-paleta{display:grid;gap:4px}
.rh-paleta>small{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:#7b8698;font-weight:800;margin-bottom:2px}
.rh-pal{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid transparent;border-radius:9px;background:transparent;font:inherit;font-size:11.5px;color:#4a5d78;text-align:left;cursor:default}
.rh-pal.ed{cursor:pointer}
.rh-pal.ed:hover{background:#f3f7ff;border-color:#dbe4f3}
.rh-pal.on{background:#182841;color:#fff;border-color:#182841;box-shadow:0 8px 18px -10px #182841}
.rh-pal i{width:16px;height:16px;border-radius:5px;flex:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.35)}
.rh-pal.leg{opacity:.7}
#rhCal[data-tool]:not([data-tool=""]) .rh-dia{cursor:crosshair}
.rh-dia{background-size:200% 200%;box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 2px 4px rgba(20,30,53,.12)}
.rh-d-trabalhado,.rh-pal i.rh-d-trabalhado{background:linear-gradient(135deg,#34d399 0%,#059669 45%,#10b981 100%);color:#fff}
.rh-d-falta,.rh-pal i.rh-d-falta{background:linear-gradient(135deg,#fb7185,#be123c 50%,#ef4444);color:#fff}
.rh-d-falta_justificada,.rh-pal i.rh-d-falta_justificada{background:linear-gradient(135deg,#fcd34d,#d97706 50%,#f59e0b);color:#fff}
.rh-d-ferias,.rh-pal i.rh-d-ferias{background:linear-gradient(135deg,#67e8f9,#0284c7 50%,#38bdf8);color:#fff}
.rh-d-atestado,.rh-pal i.rh-d-atestado{background:linear-gradient(135deg,#fde68a,#b45309 55%,#f59e0b);color:#fff}
.rh-d-afastamento,.rh-pal i.rh-d-afastamento{background:linear-gradient(135deg,#d6a25a,#78350f 55%,#b45309);color:#fff}
.rh-d-licenca,.rh-pal i.rh-d-licenca{background:linear-gradient(135deg,#d8b4fe,#7e22ce 50%,#a855f7);color:#fff}
.rh-d-rpa,.rh-pal i.rh-d-rpa{background:linear-gradient(135deg,#94a3b8,#334155 55%,#64748b);color:#fff}
.rh-dia:not(.rh-d-livre):not(.rh-d-desligado):not(.rh-d-nao_admitido){animation:rhBrilho 6s linear infinite}
@keyframes rhBrilho{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
.rh-dia.pint{animation:rhPinta .55s cubic-bezier(.2,.9,.3,1.4), rhBrilho 6s linear .55s infinite}
@keyframes rhPinta{0%{transform:scale(.6);filter:brightness(1.6)}60%{transform:scale(1.12)}100%{transform:scale(1);filter:none}}
.rh-dia.prev{outline:2px solid #182841;outline-offset:-2px;transform:scale(1.06);z-index:1}
@media(prefers-reduced-motion:reduce){.rh-dia,.rh-dia.pint,.rh-head-nuvens>i{animation:none}}
@media(max-width:900px){.rh-cal-grid{grid-template-columns:1fr}.rh-paleta{grid-template-columns:repeat(2,1fr)}}

/* v9.5h — vínculos em resumo, e-mail da prestação, configuração do RH */
.pf-vinc{display:grid;gap:6px;margin:0 18px 14px}
.pf-vinc-i{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:12px;align-items:center;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:#fbfcfe}
.pf-vinc-i.sem{border-color:#f1c3be;background:#fff8f7}
.pf-vinc-m{display:grid;line-height:1.15}.pf-vinc-m b{font-size:12.5px;color:#182841}.pf-vinc-m small{font-size:10.5px;color:#7b8698}
.pf-vinc-c{display:grid;min-width:0;line-height:1.25}.pf-vinc-c>b{font-size:12.5px;color:#182841;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pf-vinc-c small{font-size:11px;color:#5b6b85}.pf-vinc-c small b{color:#2c63c9}
.pf-vinc-a{display:flex;gap:6px;align-items:center}
.pj-mail{display:inline-block;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:700;background:#eef2f7;color:#4a5d78;vertical-align:middle}
.pj-mail.enviado{background:#e6f6ec;color:#1b6b45}.pj-mail.email_invalido{background:#fde9e9;color:#b23c3c}.pj-mail.sem_email{background:#fff4e0;color:#8a5a00}.pj-mail.falha{background:#fde9e9;color:#b23c3c}.pj-mail.nada{background:#f1f4f9;color:#7b8698}
.pj-mail-linha{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 4px}
.pj-mail-linha .btn{margin-left:auto}
.rhc-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:14px;align-items:start}
.rhc-res{margin-top:10px}
@media(max-width:900px){.rhc-grid{grid-template-columns:1fr}.pf-vinc-i{grid-template-columns:1fr}}

/* v9.5i — ficha limpa e alinhada */
.pf-sec-head small,.pf-hint,.pf-regra,.cnd-wrap .pf-card-head small,.pf-card-head small.muted,.docs-meta,.pf-card-wide>small{display:none!important}
.pf-sec-head{align-items:center;margin-bottom:12px}
.pf-scope-btn{height:38px;padding:0 18px;font-size:13px}
.pf-card .pf-card-head{padding:11px 18px;margin:0 0 12px}
.pf-card-acts{display:flex;gap:6px;align-items:center}
.scope-card .pf-chips{margin:0 18px 16px}
.chip-none{font-style:normal;color:#98a2b5;font-size:12px}
.pf-panel{align-items:start}
.dcc-grid{margin:0 18px 16px}
.dcc.dcc-vinc{border-left-color:#2c63c9}
.dcc.dcc-sem{border-left-color:#be3434}
.dcc-acts{justify-content:center}
.cnd-actions{justify-content:center}
.pill.info{background:#eef4ff;color:#2c63c9}.pill.crit{background:#fde9e9;color:#b23c3c}
.pf-declarar{margin:0 18px 12px}

/* v9.5j — RH › Cargos: painel de altura fixa; a tabela rola por dentro e o "Novo cargo" fica sempre à vista */
.op-catalog-page{display:flex;flex-direction:column;height:calc(100vh - 210px);min-height:420px}
.op-catalog-page .op-cat-head,.op-catalog-page .op-cat-top{flex:none}
.op-catalog-page .op-cat-wrap{flex:1;min-height:0;overflow:auto;max-height:none}
.op-catalog-page .op-table thead th{position:sticky;top:0;z-index:1}
.op-catalog-page .op-cat-new{flex:none;position:sticky;bottom:0;background:#fff;box-shadow:0 -10px 24px -18px rgba(15,26,51,.5)}

/* v9.5k — setas anterior/próximo e painel lateral de cargos ao vincular */
.pf-setas{display:flex;gap:4px;margin-left:6px}
.pf-seta{width:30px;height:30px;border:1px solid #d9e1ec;border-radius:9px;background:#fff;color:#2c63c9;font-size:18px;line-height:1;cursor:pointer}
.pf-seta:hover{background:#eef4ff;border-color:#2c63c9}
.pf-seta:disabled{opacity:.35;cursor:default}
.vinc-body{padding:14px 18px 16px}
.vinc-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}
.vinc-form{display:grid;gap:10px}
.vinc-datas{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.vinc-escolhido{min-height:44px;display:grid;padding:8px 10px;border:1px dashed #cfd8e6;border-radius:9px;background:#f8fafd;line-height:1.25}
.vinc-escolhido b{font-size:12.5px;color:#182841}.vinc-escolhido small{font-size:11px;color:#5b6b85}.vinc-escolhido em{font-style:normal;font-size:11.5px;color:#98a2b5}
.vinc-cargos{border:1px solid var(--line);border-radius:14px;background:#fbfcfe;padding:10px;display:flex;flex-direction:column;gap:8px;max-height:min(62vh,540px)}
.vinc-cargos-h{display:flex;align-items:baseline;justify-content:space-between}.vinc-cargos-h b{font-size:12px;color:#182841}.vinc-cargos-h small{font-size:10.5px;color:#7b8698}
.vinc-lista{overflow:auto;display:grid;gap:4px;min-height:0}
.vinc-cargo{display:grid;gap:1px;text-align:left;border:1px solid var(--line);border-radius:10px;background:#fff;padding:7px 10px;font:inherit;cursor:pointer;transition:border-color .12s,background .12s}
.vinc-cargo b{font-size:12px;color:#182841}.vinc-cargo small{font-size:10.5px;color:#7b8698}
.vinc-cargo:hover{border-color:#2c63c9;background:#f3f7ff}
.vinc-cargo.on{border-color:#182841;background:#182841}.vinc-cargo.on b,.vinc-cargo.on small{color:#fff}
.vinc-cargo.cheio b{color:#b23c3c}
@media(max-width:820px){.vinc-grid{grid-template-columns:1fr}}

/* v9.5l — borracha em destaque abaixo do calendário */
.rh-borracha{width:100%;margin-top:8px;justify-content:center;padding:9px 12px;border:1px dashed #cfd8e6;background:#f8fafd;border-radius:10px;gap:10px}
.rh-borracha i{width:18px;height:18px;border:1px solid #cbd3df}
.rh-borracha span{font-size:12.5px;font-weight:800;color:#4a5d78}
.rh-borracha small{font-size:10.5px;color:#98a2b5}
.rh-borracha:hover{border-color:#be3434;background:#fff5f5}
.rh-borracha.on{background:#be3434;border-color:#be3434}.rh-borracha.on span,.rh-borracha.on small{color:#fff}

/* v9.5m — ações abaixo do calendário */
.rh-cal-acts{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;margin-top:8px}
.rh-cal-acts .rh-quick{gap:5px}
.rh-cal-acts .rh-quick button{padding:7px 10px;font-size:11.5px}
.rh-cal-acts .rh-borracha{width:auto;margin:0;padding:7px 12px}
.rh-cal-acts .rh-borracha small{display:none}
.rh-dias-wrap .rh-dias{width:96px}

/* v9.5n — ficha enquadrada (sem rolagem lateral), situação em menu, anexos nas ocorrências */
.modal.wide{width:min(1200px,96vw);overflow-x:hidden}
.rh-ficha-grid{grid-template-columns:minmax(0,1fr) minmax(0,470px)}
.rh-form-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px 8px}
.rh-f-dias{grid-column:span 1}
.rh-f-obs{grid-column:span 5}
.rh-dias-wrap .rh-dias{width:100%}
.rh-sit-sel{font-weight:700}
.rh-sit-sel.rh-sit-ativo{color:#1b6b45}.rh-sit-sel.rh-sit-rescisao{color:#b23c3c}.rh-sit-sel.rh-sit-afastado{color:#8a5a00}.rh-sit-sel.rh-sit-licenca{color:#6b21a8}.rh-sit-sel.rh-sit-pj,.rh-sit-sel.rh-sit-rpa{color:#2c63c9}.rh-sit-sel.rh-sit-pcd{color:#075985}
.rh-cal-grid{grid-template-columns:minmax(0,1fr) 140px}
.rh-ev-item{grid-template-columns:auto auto minmax(140px,1fr) minmax(0,1.2fr) auto;gap:8px 10px}
.rh-ev-item .rh-ev-pick{display:flex;align-items:center}
.rh-ev-item .rh-ev-pick[hidden]{display:none}
.rh-ev-obs{width:100%;min-width:0;padding:5px 8px;border:1px solid #e1e7f0;border-radius:8px;font:inherit;font-size:11.5px;background:#f8fafd}
.rh-ev-obs:focus{outline:none;border-color:#2c63c9;background:#fff}
.rh-ev-anexo{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}
.rh-ev-arq{font-size:11px;color:#2c63c9;font-weight:700;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}
.rh-mini{display:inline-flex;align-items:center;gap:3px;padding:3px 8px;border:1px solid #d6deea;border-radius:999px;background:#fff;font:inherit;font-size:10.5px;font-weight:700;color:#4a5d78;cursor:pointer;white-space:nowrap}
.rh-mini:hover{border-color:#2c63c9;color:#2c63c9;background:#f3f7ff}
.rh-ev-barra{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:10px;background:#fff6e5;border:1px solid #f3d9a4;font-size:12px;color:#7a4d00;margin-bottom:6px}
.rh-ev-barra span{flex:1}
.rh-ev-lista.escolhendo .rh-ev-item{border-color:#f3d9a4}
@media(max-width:1100px){.rh-ficha-grid{grid-template-columns:1fr}.rh-form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.rh-f-obs{grid-column:span 3}}
@media(max-width:700px){.rh-form-grid{grid-template-columns:1fr 1fr}.rh-f-obs{grid-column:span 2}.rh-ev-item{grid-template-columns:1fr auto}}
/* v9.5n-b — linha da ocorrência: caixa de seleção some sem quebrar a linha */
.rh-ev-item{grid-template-columns:auto auto auto minmax(120px,1fr) minmax(0,1.3fr) auto}
.rh-ev-item .rh-ev-pick[hidden]{display:block;width:0;overflow:hidden;margin-right:-10px}

/* v9.5o — categorias criadas pelo usuário, desligamento pintável, botões do calendário em uma linha, ocorrências com ações à direita */
.rh-cal-acts{grid-template-columns:1fr;gap:6px}
.rh-cal-acts .rh-quick{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.rh-cal-acts .rh-quick button{padding:8px 6px;font-size:11.5px;border-radius:9px;text-align:center}
.rh-cal-acts .rh-borracha{width:100%;margin:0;padding:8px 12px;justify-content:center}
.rh-d-rescisao,.rh-pal i.rh-d-rescisao{background:linear-gradient(135deg,#f87171,#7f1d1d 55%,#b91c1c);color:#fff;box-shadow:inset 0 0 0 2px #fff}
.rh-dia.prev-rescisao{outline-color:#b91c1c}
.rh-pal.cat{position:relative;padding-right:22px}
.rh-cat-x{position:absolute;right:6px;top:50%;transform:translateY(-50%);font-style:normal;font-size:13px;line-height:1;color:#98a2b5;opacity:0;cursor:pointer;padding:2px 4px;border-radius:5px}
.rh-pal.cat:hover .rh-cat-x{opacity:1}.rh-cat-x:hover{background:#fde9e9;color:#b23c3c}.rh-pal.on .rh-cat-x{color:#fff}
.rh-pal-add{border:1px dashed #cfd8e6;margin-top:4px;color:#2c63c9}
.rh-pal-add i{display:flex;align-items:center;justify-content:center;background:#eef4ff;color:#2c63c9;font-weight:900;font-size:13px;box-shadow:none}
.rh-cat-form{display:grid;grid-template-columns:1fr 34px auto;gap:5px;align-items:center;padding:6px;border:1px solid #dbe4f3;border-radius:9px;background:#f8fafd;margin-top:4px}
.rh-cat-form[hidden]{display:none}
.rh-cat-form input:not([type=color]){min-width:0;padding:6px 8px;border:1px solid #d6deea;border-radius:7px;font:inherit;font-size:12px}
.rh-cat-form input[type=color]{width:34px;height:30px;padding:2px;border:1px solid #d6deea;border-radius:7px;background:#fff;cursor:pointer}
#pjMonthOc{max-width:220px}
.rh-ev-item{grid-template-columns:auto auto auto minmax(0,1fr) auto;gap:8px 12px}
.rh-ev-item .rh-ev-obs{font-size:12.5px;padding:7px 10px}
.rh-ev-acts{display:flex;align-items:center;gap:5px;justify-content:flex-end;flex-wrap:nowrap}
.rh-ev-acts .icon-btn.trash{margin-left:4px}
.rh-mini.tem{background:#e6f7ee;border-color:#23865c;color:#1b6b45}
.rh-mini.tem:hover{background:#d3f0e0;color:#14532d;border-color:#14532d}
.rh-qr{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:10px 12px;margin:-2px 0 6px;border:1px solid #cfe0ff;border-radius:12px;background:#f3f7ff}
.rh-qr canvas{border-radius:8px;background:#fff;padding:4px}
.rh-qr-t{display:flex;flex-direction:column;gap:3px;font-size:12px;color:#4a5d78}
.rh-qr-t b{color:#182841;font-size:13px}
.rh-qr-t .rh-mini{align-self:flex-start;margin-top:4px}
.rh-qr-esp{color:#2c63c9;font-weight:700;animation:rhPulsa 1.4s ease-in-out infinite}
@keyframes rhPulsa{0%,100%{opacity:.45}50%{opacity:1}}
.rh-qr-x{border:0;background:transparent;font-size:20px;color:#98a2b5;cursor:pointer;align-self:start}
.rh-qr-x:hover{color:#b23c3c}
@media(max-width:700px){.rh-ev-item{grid-template-columns:1fr auto}.rh-ev-acts{grid-column:1/-1;justify-content:flex-start;flex-wrap:wrap}}
/* v9.5o-b — a caixa de seleção só entra na grade quando “usar em outras” está ativo */
.rh-ev-item{grid-template-columns:auto auto minmax(0,1fr) auto}
.rh-ev-item .rh-ev-pick[hidden]{display:none}
.rh-ev-lista.escolhendo .rh-ev-item{grid-template-columns:auto auto auto minmax(0,1fr) auto}

/* v9.5p — tipo/modelo nas relações; + e − nos painéis do cadastro */
.rh-tipo{display:inline-block;padding:2px 7px;border-radius:999px;font-size:10.5px;font-weight:800;letter-spacing:.03em}
.rh-tipo-PF{background:#eef4ff;color:#2c63c9}.rh-tipo-PJ{background:#fff4e0;color:#8a5a00}
.rh-modelo{font-size:11.5px;color:#4a5d78;font-weight:700}
#pjMonthTipo{max-width:90px}#pjMonthModelo{max-width:150px}
.pf-card-h{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 18px 0}
.pf-card-h h3{margin:0}
.pf-card>.pf-card-h+.pf-grid{margin-top:8px}
.pf-pm{display:inline-flex;gap:4px}
.pf-pm-b{width:22px;height:22px;border-radius:7px;border:1px solid #d6deea;background:#fff;color:#4a5d78;font:inherit;font-size:14px;font-weight:800;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.pf-pm-b:hover{border-color:#2c63c9;color:#2c63c9;background:#f3f7ff}
.pf-pm-b[data-pf-rem]:hover{border-color:#b23c3c;color:#b23c3c;background:#fff5f5}
.pf-pop{margin:8px 18px 0;padding:10px 12px;border:1px solid #cfe0ff;border-radius:12px;background:#f3f7ff;display:flex;flex-direction:column;gap:6px;font-size:12px}
.pf-pop b{color:#182841;font-size:12.5px}
.pf-pop input{padding:7px 9px;border:1px solid #d6deea;border-radius:8px;font:inherit;font-size:12.5px;background:#fff}
.pf-pop-acts{display:flex;gap:6px;justify-content:flex-end;margin-top:2px}
.pf-pop-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 8px;border-radius:8px;background:#fff;border:1px solid #e1e7f0}
.pf-pop-item.oculto{opacity:.65}
.pf-pop-lista{max-height:320px;overflow:auto}
.pf-field.pf-extra{border-left:3px solid #2c63c9}
.pf-inline{width:100%;padding:5px 8px;border:1px solid #2c63c9;border-radius:8px;font:inherit;font-size:13px;font-weight:700;color:#182841}

/* v9.5q — vincular contrato: painel de cargos mais largo e rente ao formulário */
.modal:has(.vinc-body){width:min(1240px,96vw)}
.vinc-grid{grid-template-columns:minmax(0,1fr) 470px;align-items:stretch;gap:18px}
.vinc-form{align-content:start}
.vinc-cargos{max-height:none;height:100%;min-height:0;box-sizing:border-box}
.vinc-lista{flex:1;min-height:0}
.vinc-cargo b{white-space:normal;line-height:1.25}
.vinc-cargo{padding:8px 12px}
@media(max-width:820px){.vinc-cargos{height:auto;max-height:50vh}}
.vinc-lista{align-content:start}

/* v9.5r — hora extra e meio período, valor mensal editável, ocorrências com valor, impressão */
.rh-d-hora_extra,.rh-pal i.rh-d-hora_extra{background:linear-gradient(135deg,#a7f3d0,#0f766e 55%,#14b8a6);color:#fff}
.rh-d-meio_periodo,.rh-pal i.rh-d-meio_periodo{background:linear-gradient(135deg,#d9f99d 0%,#4d7c0f 55%,#84cc16 100%);color:#fff}
.rh-dia.prev-hora_extra{outline-color:#0f766e}.rh-dia.prev-meio_periodo{outline-color:#4d7c0f}
.rh-oc-hora_extra{background:#d1fae5;color:#0f766e}.rh-oc-meio_periodo{background:#ecfccb;color:#4d7c0f}
.rh-val-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rh-val-h small{flex:1}
.rh-val-edit{display:inline-flex;align-items:center;gap:6px;border:1px solid #d6deea;background:#fff;border-radius:999px;padding:4px 10px;font:inherit;font-size:11px;color:#4a5d78;cursor:pointer}
.rh-val-edit b{color:#182841;font-size:12px}.rh-val-edit:hover{border-color:#2c63c9;color:#2c63c9}
.rh-val-form{display:grid;gap:6px;padding:10px 12px;margin:6px 0 8px;border:1px solid #cfe0ff;border-radius:12px;background:#f3f7ff;font-size:12px}
.rh-val-form[hidden]{display:none}
.rh-val-form label{display:grid;gap:3px;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#5b6b85}
.rh-val-form input{padding:7px 10px;border:1px solid #d6deea;border-radius:8px;font:inherit;font-size:15px;font-weight:800;color:#182841;background:#fff;max-width:200px}
.rh-val-form-b{display:flex;gap:6px;flex-wrap:wrap}
.rh-val-form small{color:#4a5d78}.rh-val-hist{font-style:normal;font-size:10.5px;color:#7b8698}
.rh-val-oc{cursor:pointer;text-align:left;font:inherit;border:1px dashed #cfd8e6;background:#fbfcfe}
.rh-val-oc:hover,.rh-val-oc.on{border-style:solid;border-color:#2c63c9;background:#f3f7ff}
.rh-oc-det{margin:6px 0 10px;padding:8px 10px;border:1px solid #dbe4f3;border-radius:10px;background:#fff;font-size:12px}
.rh-oc-det[hidden]{display:none}
.rh-oc-det table{width:100%;border-collapse:collapse}.rh-oc-det th{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#7b8698;text-align:left;padding:4px 6px;border-bottom:1px solid #e6ebf3}
.rh-oc-det td{padding:5px 6px;border-bottom:1px solid #f0f3f8}.rh-oc-det tfoot td{font-weight:800;border-bottom:0}.rh-oc-det .num{text-align:right;white-space:nowrap}
.rh-oc-det .neg{color:#b23c3c}.rh-oc-det .ok{color:#1b6b45}
.rh-ev-valor{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}
.rh-ev-valor label{display:inline-flex;align-items:center;gap:3px;border:1px solid #e1e7f0;border-radius:8px;padding:2px 6px;background:#fff}
.rh-ev-valor label span{font-size:10px;font-weight:800;color:#98a2b5}
.rh-ev-valor input{border:0;font:inherit;font-size:12px;font-weight:800;width:84px;text-align:right;background:transparent;color:#182841}
.rh-ev-valor .rh-ev-h{width:40px}
.rh-ev-valor input.neg{color:#b23c3c}.rh-ev-valor input.ok{color:#1b6b45}
.rh-ev-valor.manual label{border-color:#f3d9a4;background:#fff8e8}
.rh-ev-valor small{flex-basis:100%;font-size:10px;color:#98a2b5;line-height:1.1}
.rh-ev-item{grid-template-columns:auto auto minmax(0,1fr) auto auto}
.rh-ev-lista.escolhendo .rh-ev-item{grid-template-columns:auto auto auto minmax(0,1fr) auto auto}
.rh-print{text-decoration:none;font-size:15px;display:inline-flex;align-items:center;justify-content:center;margin-right:6px}
@media(max-width:700px){.rh-ev-valor{grid-column:1/-1}}

/* v9.5s — CH computada */
.rh-form-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
.rh-f-obs{grid-column:span 6}
.rh-ch{padding:7px 10px;border:1px dashed #cfd8e6;border-radius:8px;background:#f8fafd;font-weight:800;color:#182841;font-size:14px}
.rh-ev-valor small b{font-weight:800}.rh-ev-valor small b.neg{color:#b23c3c}.rh-ev-valor small b.ok{color:#1b6b45}
@media(max-width:1100px){.rh-form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.rh-f-obs{grid-column:span 3}}

.pj-table td .rh-tipo,.pj-table td .pill.pc-pf,.pj-table td .pill.pc-pj,.pj-table td .pill.pc-medico{vertical-align:middle;white-space:nowrap}
.pj-table td{white-space:nowrap}
.pj-table td:first-child,.pj-table td:nth-child(5){white-space:normal}

/* v9.5t — unidade e cargo em linha própria, contador de cargos, valor em reais ao digitar */
.rh-form-grid{grid-template-columns:repeat(10,minmax(0,1fr))}
.rh-form-grid>.rh-f{grid-column:span 2}
.rh-form-grid>.rh-f-meio{grid-column:span 5}
.rh-form-grid>.rh-f-obs{grid-column:span 10}
.rh-cont{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:4px;border-radius:999px;background:#2c63c9;color:#fff;font-style:normal;font-size:10px;font-weight:800;vertical-align:middle}
.rh-val-in{display:inline-flex;align-items:center;gap:6px;border:1px solid #d6deea;border-radius:8px;background:#fff;padding:0 10px;max-width:240px}
.rh-val-in i{font-style:normal;font-weight:800;color:#98a2b5;font-size:12px}
.rh-val-in input{border:0;padding:7px 0;max-width:none;width:100%;background:transparent;text-align:right}
.rh-val-in input:focus{outline:none}
.rh-val-prev{font-size:18px;color:#1b6b45;letter-spacing:.01em}
@media(max-width:1100px){.rh-form-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.rh-form-grid>.rh-f-meio{grid-column:span 3}.rh-form-grid>.rh-f-obs{grid-column:span 6}}
@media(max-width:700px){.rh-form-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.rh-form-grid>.rh-f-meio,.rh-form-grid>.rh-f-obs{grid-column:span 4}}

/* v9.5u — ações da prestação alinhadas ao conteúdo, sem "Parcelada" */
.pj-nf-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0;padding-top:11px;border-top:1px dashed #dfe6ef}
.pj-nf-actions .btn.small{height:34px;display:inline-flex;align-items:center;padding:0 13px;border-radius:9px}
.pj-nf-actions .az-drop.mini{height:34px;min-height:0;padding:0 13px;border-radius:9px;display:inline-flex;align-items:center;gap:8px}
.pj-nf-acts-r{margin-left:auto;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pj-nf-acts-r .btn.small{background:transparent}
.pj-nf-acts-r .btn.small:hover{background:#f3f7ff}
@media(max-width:820px){.pj-nf-acts-r{margin-left:0;width:100%;justify-content:flex-start;padding-top:6px}}

/* v9.5v — seletor de cargo no cadastro */
.pf-cargo-pick .vinc-cargos{max-height:none;height:min(60vh,520px)}
.pf-cargo-pick .vinc-lista{flex:1;min-height:0;align-content:start}
.pf-cargo-pick .form-actions{margin-top:12px}

/* V9.6 — folha de pagamento: selo "novo na folha", holerite do extrato e avisos da importação */
.rh-novo{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;background:#dcfce7;color:#166534;font-size:10px;font-weight:700;letter-spacing:.02em;vertical-align:middle;text-transform:uppercase}
.rh-hol{margin-top:12px;padding-top:10px;border-top:1px dashed #dfe6f0}
.rh-hol-erro{border-top-color:#be3434}
.rh-hol-wrap{overflow-x:auto}
.rh-hol-t{width:100%;border-collapse:collapse;font-size:11.5px}
.rh-hol-t th{font-size:10px;text-transform:uppercase;letter-spacing:.03em;color:#7b8698;text-align:left;padding:4px 6px;border-bottom:1px solid #e3e8f0;white-space:nowrap}
.rh-hol-t td{padding:3px 6px;border-bottom:1px solid #f1f4f8;color:#243049}
.rh-hol-t .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.rh-hol-t .cod{color:#98a2b5;font-variant-numeric:tabular-nums;width:1%;white-space:nowrap}
.rh-hol-t .ref{color:#7b8698;white-space:nowrap;width:1%}
.rh-hol-t .sep{border-left:2px solid #e3e8f0}
.rh-hol-t tfoot td{font-weight:700;border-top:1px solid #d5dce8;background:#f7f9fc}
.rh-hol-t tfoot tr.liq td{background:#eef6ff;color:#1d4f91}
.rh-hol-imp{font-style:normal;font-size:9.5px;color:#be3434;background:#fdecec;border-radius:4px;padding:0 4px;margin-left:4px}
.rh-hol-bases{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:8px;font-size:11px;color:#5b6679}
.rh-hol-bases b{color:#182841;font-variant-numeric:tabular-nums}
.rh-hol-obs{margin-top:8px;padding:6px 9px;border-radius:8px;background:#fff8e6;color:#7a5a0b;font-size:11.5px;line-height:1.5}
.rh-val-nota.neg{color:#be3434}
.si-avisos{max-height:320px;overflow:auto;line-height:1.55}
.fd-cc{color:#5b6b85;font-size:10.5px}

/* V9.6.5 — ficha da folha: seções, valores centralizados, C.C/Depto por código, legenda de folga */
.rh-sec{margin-top:10px;padding:10px 12px;border:1px solid #e6ecf4;border-radius:12px;background:#fbfcfe}
.rh-sec:first-child{margin-top:0}
.rh-sec-h{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin:0 0 8px;text-align:center}
.rh-sec-h b{font-size:12.5px;color:#182841;letter-spacing:.02em;text-transform:uppercase}
.rh-sec-h small{font-size:10.5px;color:#7b8698}
.rh-sec-h .rh-val-edit{margin-left:auto}
.rh-val .rh-val-i{text-align:center;justify-items:center;align-content:center}
.rh-val .rh-val-i small{text-align:center}
.rh-val .rh-val-i em{text-align:center;font-style:normal}
.rh-res .rh-val-i{text-align:center;justify-items:center}
.rh-val-grid.rh-val-5{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:900px){.rh-val-grid.rh-val-5{grid-template-columns:repeat(3,minmax(0,1fr))}}
.rh-hol .rh-val-h{justify-content:center;text-align:center}
.rh-hol-obs,.rh-val-nota,.rh-val-hist{text-align:left}
.rh-cod{display:flex;flex-direction:column;gap:2px}
.rh-cod input{width:100%}
.rh-cod span{font-size:10.5px;color:#46546b;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rh-pal.rh-pal-folga{cursor:default;opacity:.95}
.rh-pal-folga i{border:1px dashed #b9c3d3}
.rh-ficha-grid{grid-template-columns:minmax(0,1fr) minmax(0,440px)}
.modal:has(.rh-ficha){width:min(1480px,97vw);max-width:97vw}
.rh-res .rh-val-grid{grid-template-columns:repeat(5,minmax(0,1fr))}

/* V9.6.7 — relação do RH compacta: uma linha por colaborador, sem quebra */
.rh-table{table-layout:auto;width:100%}
.rh-table th,.rh-table td{white-space:nowrap;padding:5px 8px;font-size:12px;line-height:1.25;vertical-align:middle}
.rh-table td.esq,.rh-table th.esq{text-align:left}
.rh-table td b{font-weight:650}
.rh-table .rh-n{color:#98a2b5;font-size:10.5px;width:1%}
.rh-table td.esq b{display:inline-block;max-width:260px;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}
.rh-table .rh-cargo,.rh-table .rh-uni{display:inline-block;max-width:210px;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;text-align:left}
.rh-table .rh-novo{margin-left:0}
.rh-table td small{display:none}
.rh-table .rh-filtros th input,.rh-table .rh-filtros th select{width:100%;min-width:48px;font-size:11px;padding:2px 4px}

/* V9.6.8 — relação do RH cabe na tela: Nº estreito, ocorrências e alerta enxutos */
.rh-table th,.rh-table td{padding:4px 6px}
.rh-table th{font-size:10.5px;letter-spacing:.02em}
.rh-table .rh-n{width:34px;min-width:34px;text-align:center}
.rh-table td.esq b{max-width:230px}
.rh-table .rh-cargo,.rh-table .rh-uni{max-width:190px}
.rh-table td.rh-ocs{max-width:190px;overflow:hidden;text-overflow:ellipsis}
.rh-table .rh-oc{font-size:10px;padding:1px 6px}
.rh-table .rh-filtros th select,.rh-table .rh-filtros th input{min-width:0;max-width:100%}
.rh-table .rh-filtros th:nth-last-child(2) select{max-width:150px}
.rh-table .rh-al{font-size:10.5px}
.rh-panel .table-wrap{overflow-x:auto}

/* V9.6.9 — ocultar e reexibir colunas da relação do RH */
.rh-cols-oc{display:inline-flex;flex-wrap:wrap;align-items:center;gap:5px;margin-left:12px}
.rh-cols-oc small{font-size:10.5px;color:#7b8698}
.rh-col-mostrar{border:1px dashed #9fb3cf;background:#f4f8fd;color:#1d4f91;border-radius:999px;padding:1px 9px;font-size:10.5px;font-weight:600;cursor:pointer}
.rh-col-mostrar:hover{background:#e3eefc}
.rh-col-mostrar.todas{border-style:solid;background:#fff;color:#5b6679}
.rh-olho{display:inline-flex;color:#1d4f91}
.rh-olho svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2}
.rh-cols-oc{padding:2px 10px;border:1px dashed #b9c6d8;border-radius:999px;background:#f8fafd}
.rh-cols-dica{font-style:normal;font-size:10.5px;color:#98a2b5}
.rh-cols-oc.alvo{border-color:#2c63c9;background:#eef4ff}
.rh-cols-oc.sobre{border-style:solid;background:#dce9ff}
.rh-table th[draggable="true"]{cursor:grab}
.rh-panel-h{display:flex;align-items:center;gap:12px}
.rh-panel-h .rh-cols-oc{flex:1;margin-left:0;min-height:28px;border-radius:10px}

/* V9.6.13 — resumo do colaborador (clique na relação do RH): maior e alinhado */
.modal:has(.rh-res){width:min(980px,95vw);max-width:95vw}
.modal:has(.rh-res) .rh-nome b{font-size:18px}
.modal:has(.rh-res) .rh-nome small{font-size:12px}
.modal:has(.rh-res) .rh-head-comp b{font-size:18px}
.rh-res{padding:18px 24px 20px}
.rh-res .rh-res-linha{gap:8px;margin-bottom:14px}
.rh-res .rh-res-linha .pill,.rh-res .rh-res-linha .rh-sit{font-size:12px;padding:3px 10px}
.rh-res .rh-val-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:stretch}
.rh-res .rh-val-i{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:96px;padding:12px 10px;border-radius:12px;text-align:center}
.rh-res .rh-val-i small{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#5b6b85;font-weight:700}
.rh-res .rh-val-i b{font-size:21px;line-height:1.15}
.rh-res .rh-val-i em{font-size:11.5px;color:#7b8698;min-height:14px}
.rh-res .rh-val-nota{font-size:13px;margin-top:10px}
.rh-res .rh-actions{margin-top:18px}
.rh-res .rh-actions .btn{font-size:14px;padding:10px 18px}
@media(max-width:760px){.rh-res .rh-val-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rh-res .rh-val-i b{font-size:18px}}

/* V9.6.14 — resumo do colaborador: centralizado, cartões com faixas alinhadas e cores */
.modal-layer:has(.rh-res){display:flex;align-items:center;justify-content:center}
.modal:has(.rh-res){margin:0 auto;overflow:hidden;border:none;box-shadow:0 30px 80px rgba(10,30,70,.35)}
.modal:has(.rh-res) .modal-head{background:linear-gradient(120deg,#0f2d63 0%,#1d4f91 55%,#2c63c9 100%);border-bottom:none;padding:18px 22px}
.modal:has(.rh-res) .modal-head .icon-btn{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.25)}
.modal:has(.rh-res) .rh-head-comp small{color:#b9d0f5}
.modal:has(.rh-res) .rh-head-comp b{color:#fff}
.modal:has(.rh-res) .rh-head-comp{border-left-color:rgba(255,255,255,.25)}
/* nome = botão para o cadastro, bem demarcado */
.modal:has(.rh-res) .rh-nome{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.35);border-radius:14px;padding:6px 14px 6px 6px;transition:background .15s,border-color .15s}
.modal:has(.rh-res) .rh-nome:hover{background:rgba(255,255,255,.2);border-color:#9cc3ff}
.modal:has(.rh-res) .rh-nome i{background:#fff;color:#1d4f91}
.modal:has(.rh-res) .rh-nome b{color:#fff}
.modal:has(.rh-res) .rh-nome small{color:#d6e4fa}
.modal:has(.rh-res) .rh-nome u{color:#fff;background:#2c63c9;border-radius:999px;padding:1px 8px;text-decoration:none;font-weight:700;margin-left:2px}
/* cartões: título, valor e observação em faixas fixas (ficam na mesma linha entre cartões) */
.rh-res .rh-val-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.rh-res .rh-val-i{display:grid;grid-template-rows:18px 30px 16px;align-content:center;justify-items:center;row-gap:6px;min-height:112px;background:#fff;border:1px solid #e3eaf4;border-top:4px solid var(--c,#2c63c9);box-shadow:0 4px 14px rgba(20,50,100,.06)}
.rh-res .rh-val-i small{align-self:end}
.rh-res .rh-val-i b{align-self:center;font-size:22px}
.rh-res .rh-val-i em{align-self:start}
.rh-res .rh-val-grid>.rh-val-i:nth-child(1){--c:#2c63c9;background:linear-gradient(180deg,#f2f7ff,#fff)}
.rh-res .rh-val-grid>.rh-val-i:nth-child(2){--c:#1d4f91;background:linear-gradient(180deg,#eef4ff,#fff)}
.rh-res .rh-val-grid>.rh-val-i:nth-child(3){--c:#be3434;background:linear-gradient(180deg,#fff3f3,#fff)}
.rh-res .rh-val-grid>.rh-val-i:nth-child(4){--c:#d9772b;background:linear-gradient(180deg,#fff6ee,#fff)}
.rh-res .rh-val-grid>.rh-val-i:nth-child(5){--c:#23865c;background:linear-gradient(180deg,#eefaf3,#fff)}
.rh-res .rh-val-grid>.rh-val-i:nth-child(1) b{color:#1d4f91}
.rh-res .rh-val-grid>.rh-val-i:nth-child(4) b{color:#b4541a}
.rh-res .rh-actions .btn.primary{background:linear-gradient(120deg,#1d4f91,#2c63c9);border:none}

/* V9.6.15 — resumo do colaborador: botão principal "Detalhamento" animado e "Fechar" discreto */
.rh-res-acoes{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin-top:20px;padding-top:16px;border-top:1px solid #e6ecf4}
.rh-res-det{grid-column:2;display:inline-flex;align-items:center;gap:12px;padding:13px 34px;border:none;border-radius:999px;cursor:pointer;color:#fff;font-size:15px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;
  background:linear-gradient(110deg,#0f2d63,#1d4f91,#2c63c9,#0ea5e9,#2c63c9,#1d4f91,#0f2d63);background-size:300% 100%;animation:rhDetCor 5s ease-in-out infinite;
  box-shadow:0 10px 26px rgba(29,79,145,.38),inset 0 1px 0 rgba(255,255,255,.25);transition:transform .15s,box-shadow .15s}
.rh-res-det i{font-style:normal;font-size:18px;transition:transform .2s}
.rh-res-det:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(29,79,145,.5)}
.rh-res-det:hover i{transform:translateX(4px)}
.rh-res-det:active{transform:translateY(0)}
@keyframes rhDetCor{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
@media (prefers-reduced-motion:reduce){.rh-res-det{animation:none}}
.rh-res-fechar{grid-column:3;justify-self:end;padding:9px 18px;border-radius:999px;border:1px solid #cfdaea;background:#fff;color:#1d4f91;font-weight:700;font-size:13px;cursor:pointer;transition:background .15s,border-color .15s}
.rh-res-fechar:hover{background:#eef4ff;border-color:#2c63c9}
@media(max-width:640px){.rh-res-acoes{grid-template-columns:1fr}.rh-res-det,.rh-res-fechar{grid-column:1;justify-self:center}}

/* V9.6.16 — prestação de contas PF (ficha): calendário com legenda embaixo, coluna fixa na rolagem, cartões coloridos alinhados */
.rh-ficha .rh-ficha-grid{grid-template-columns:minmax(0,1fr) minmax(380px,430px);gap:16px}
.rh-ficha .rh-cal-wrap{position:sticky;top:0;align-self:start;padding:14px;border-radius:16px;border:1px solid #dfe7f2;background:linear-gradient(180deg,#f5f9ff,#fff 40%);box-shadow:0 8px 24px rgba(20,50,100,.07)}
.rh-ficha .rh-cal-h{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px}
.rh-ficha .rh-cal-h b{font-size:14px;color:#0f2d63;text-transform:uppercase;letter-spacing:.05em}
.rh-ficha .rh-cal-grid{display:block}
.rh-ficha .rh-cal .rh-dia{min-height:40px;font-size:13px}
.rh-ficha .rh-cal-acts{margin-top:10px}
.rh-ficha .rh-paleta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 8px;margin-top:12px;padding-top:10px;border-top:1px dashed #d5deeb}
.rh-ficha .rh-paleta>small{grid-column:1/-1;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#5b6b85}
.rh-ficha .rh-paleta .rh-pal{padding:4px 6px;font-size:11.5px;min-width:0}
.rh-ficha .rh-paleta .rh-pal span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rh-ficha .rh-paleta .rh-pal-add,.rh-ficha .rh-paleta .rh-cat-form{grid-column:1/-1}
.rh-ficha .rh-pal-folga{grid-column:1/-1}
/* seções de valores no mesmo padrão do resumo */
.rh-ficha .rh-sec{background:#fff;border:1px solid #dfe7f2;box-shadow:0 4px 16px rgba(20,50,100,.05)}
.rh-ficha .rh-sec-h b{color:#0f2d63}
.rh-ficha .rh-val .rh-val-i{display:grid;grid-template-rows:16px 26px 14px;row-gap:3px;align-content:center;justify-items:center;min-height:84px;border:1px solid #e3eaf4;border-top:4px solid var(--c,#2c63c9);border-radius:12px;background:linear-gradient(180deg,var(--f,#f5f9ff),#fff)}
.rh-ficha .rh-val .rh-val-i small{align-self:end;font-size:10px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:#5b6b85}
.rh-ficha .rh-val .rh-val-i b{align-self:center;font-size:17px}
.rh-ficha .rh-val .rh-val-i em{align-self:start;font-size:10.5px;color:#7b8698;font-style:normal}
.rh-ficha .rh-val-5>.rh-val-i:nth-child(1){--c:#2c63c9;--f:#f0f5ff}
.rh-ficha .rh-val-5>.rh-val-i:nth-child(2){--c:#be3434;--f:#fff3f3}
.rh-ficha .rh-val-5>.rh-val-i:nth-child(3){--c:#d9772b;--f:#fff6ee}
.rh-ficha .rh-val-5>.rh-val-i:nth-child(4){--c:#7c3aed;--f:#f6f1ff}
.rh-ficha .rh-val-5>.rh-val-i:nth-child(5){--c:#23865c;--f:#eefaf3}
.rh-ficha .rh-val-5>.rh-val-i:nth-child(1) b{color:#1d4f91}
.rh-ficha .rh-val-5>.rh-val-i:nth-child(3) b{color:#b4541a}
.rh-ficha .rh-val-5>.rh-val-i:nth-child(4) b{color:#6d28d9}
.rh-ficha .rh-sec:not(:first-child) .rh-val-grid>.rh-val-i{--c:#1d4f91;--f:#f5f9ff}
.rh-ficha .rh-val-oc{border-style:solid!important}
/* campos do formulário mais alinhados */
.rh-ficha .rh-form-grid label>span,.rh-ficha .rh-form-grid .rh-f>small{color:#0f2d63}
.rh-ficha .rh-cod span{font-weight:600;color:#1d4f91}
.rh-ficha .rh-hol{background:#fff;border:1px solid #dfe7f2;border-radius:12px;padding:10px 12px;margin-top:12px}
@media(max-width:1100px){.rh-ficha .rh-ficha-grid{grid-template-columns:1fr}.rh-ficha .rh-cal-wrap{position:static}}

/* V9.6.17 — ficha: botão único "Cálculo de impostos"; tela de detalhamento no layout novo */
.rh-cta:has(.rh-cta-unico){display:flex;justify-content:center;grid-template-columns:none;padding:10px 0}
.modal:has(.pj-det){overflow:hidden;border:none;box-shadow:0 30px 80px rgba(10,30,70,.35)}
.pj-det-head{background:linear-gradient(120deg,#0f2d63 0%,#1d4f91 55%,#2c63c9 100%);border-bottom:none;padding:18px 22px;display:flex;align-items:center;gap:14px}
.pj-det-head>div:first-child{flex:1}
.pj-det-head .eyebrow{color:#b9d0f5}
.pj-det-head h2{color:#fff}
.pj-det-head .icon-btn{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.25)}
.pj-det-sit .pill,.pj-det-sit span{background:#fff;color:#1d4f91}
.pj-det{padding:18px 22px}
.pj-det-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.pj-det-kpis .kpi{display:grid;grid-template-rows:18px 32px 16px;row-gap:6px;align-content:center;justify-items:center;text-align:center;min-height:108px;border:1px solid #e3eaf4;border-top:4px solid var(--c,#2c63c9);border-radius:12px;background:linear-gradient(180deg,var(--f,#f5f9ff),#fff);box-shadow:0 4px 14px rgba(20,50,100,.06)}
.pj-det-kpis .kpi small{align-self:end;font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:#5b6b85}
.pj-det-kpis .kpi strong{align-self:center;font-size:21px;color:#1d4f91}
.pj-det-kpis .kpi strong.neg{color:#be3434}.pj-det-kpis .kpi strong.lar{color:#b4541a}.pj-det-kpis .kpi strong.rox{color:#6d28d9}.pj-det-kpis .kpi strong.pos{color:#23865c}
.pj-det-kpis .kpi .kpi-nota{align-self:start;font-size:11px;color:#7b8698;font-style:normal}
.pj-det .section-title h3{color:#0f2d63}
.pj-det .pj-tax-box{border:1px solid #dfe7f2;border-radius:14px;background:#fff;box-shadow:0 4px 16px rgba(20,50,100,.05)}

/* V9.6.18 — detalhamento: rola de novo, cabeçalho fixo e alinhado, 5 cartões na mesma linha */
.modal:has(.pj-det){overflow:auto}
.pj-det-head{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:14px}
.pj-det-head>div:not(.pj-det-sit){flex:1;min-width:0}
.pj-det-head .rh-voltar,.pj-det-head .btn{background:rgba(255,255,255,.14)!important;color:#fff!important;border:1px solid rgba(255,255,255,.35)!important;border-radius:999px!important;padding:6px 14px!important;font-weight:700}
.pj-det-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}
.pj-det-kpis .kpi .kpi-nota{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
@media(max-width:760px){.pj-det-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* V9.6.19 — RH · folha do mês no layout novo: barra de filtros em quadro, indicadores coloridos, tabela com cabeçalho azul */
.topbar{margin-bottom:10px}
.rh-top{margin-bottom:12px;padding:10px 12px;border:1px solid #dfe7f2;border-radius:14px;background:linear-gradient(180deg,#f5f9ff,#fff);box-shadow:0 4px 16px rgba(20,50,100,.05)}
.rh-kpis{grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:10px;margin-bottom:12px}
.rh-kpi{padding:10px 8px;text-align:center;justify-items:center;border:1px solid #e3eaf4;border-top:4px solid var(--c);border-radius:12px;background:linear-gradient(180deg,color-mix(in srgb,var(--c) 7%,#fff),#fff);box-shadow:0 4px 14px rgba(20,50,100,.06)}
.rh-kpi::before{display:none}
.rh-kpi small{font-size:9.5px;color:#5b6b85;max-width:100%}
.rh-kpi strong{font-size:22px;color:var(--c)}
.rh-kpi:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(20,50,100,.12)}
.rh-kpi.sel{background:var(--c);box-shadow:0 10px 22px color-mix(in srgb,var(--c) 35%,transparent)}
.rh-kpi.sel small,.rh-kpi.sel strong,.rh-kpi.sel em{color:#fff}
.rh-panel{border:1px solid #dfe7f2;border-radius:16px;box-shadow:0 8px 24px rgba(20,50,100,.07)}
.rh-table th{color:#0f2d63;background:#eef4ff}
.rh-table tr.rh-filtros th{background:#f7faff}
.rh-table tbody tr:hover td{background:#f2f7ff}
.rh-table td.esq b{color:#0f2d63}
@media(min-width:1280px){.rh-kpis{grid-template-columns:repeat(12,minmax(0,1fr))}}

/* V9.6.20 — RH: abas com ícones e cores, seletor de competência moderno, botões com ícone */
.rh-abas{gap:6px;padding:6px;border-radius:16px;background:#fff;border:1px solid #dfe7f2;box-shadow:0 4px 16px rgba(20,50,100,.06);flex-wrap:wrap}
.rh-abas .pj-tab{--c:#2c63c9;display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:12px;border:1px solid transparent;background:transparent;color:#34425a;font-weight:700;transition:background .15s,color .15s,box-shadow .15s}
.rh-abas .pj-tab[data-pj-tab="rh"]{--c:#2c63c9}.rh-abas .pj-tab[data-pj-tab="month"]{--c:#0e9aa7}.rh-abas .pj-tab[data-pj-tab="pending"]{--c:#d9772b}
.rh-abas .pj-tab[data-pj-tab="people"]{--c:#23865c}.rh-abas .pj-tab[data-pj-tab="cargos"]{--c:#7c3aed}.rh-abas .pj-tab[data-pj-tab="reports"]{--c:#c0357a}.rh-abas .pj-tab[data-pj-tab="rhconf"]{--c:#5b6b85}
.rh-abas .tab-ic{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:8px;background:color-mix(in srgb,var(--c) 13%,#fff);color:var(--c);transition:background .15s,color .15s}
.rh-abas .tab-ic svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.rh-abas .pj-tab:hover{background:color-mix(in srgb,var(--c) 8%,#fff);color:var(--c)}
.rh-abas .pj-tab.active{background:linear-gradient(120deg,color-mix(in srgb,var(--c) 85%,#000),var(--c));color:#fff;box-shadow:0 8px 18px color-mix(in srgb,var(--c) 35%,transparent)}
.rh-abas .pj-tab.active .tab-ic{background:rgba(255,255,255,.2);color:#fff}
/* competência */
.rh-comp2{position:relative;display:flex;align-items:center;gap:6px}
.rh-nav2{width:34px;height:44px;border-radius:12px;border:1px solid #d5deeb;background:#fff;color:#1d4f91;font-size:18px;font-weight:800;cursor:pointer;transition:background .15s}
.rh-nav2:hover{background:#eef4ff;border-color:#2c63c9}
.rh-mes-btn{display:flex;align-items:center;gap:10px;min-width:230px;height:44px;padding:0 12px;border-radius:12px;border:1px solid #2c63c9;background:linear-gradient(120deg,#1d4f91,#2c63c9);color:#fff;cursor:pointer;box-shadow:0 8px 18px rgba(44,99,201,.3)}
.rh-mes-btn span{flex:1;display:grid;justify-items:center;line-height:1.1}
.rh-mes-btn small{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:#cfe0ff;font-weight:700}
.rh-mes-btn b{font-size:15px}
.rh-mes-btn em{font-style:normal;font-size:10px;color:#cfe0ff}
.rh-mes-ic svg{width:20px;height:20px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round}
.rh-mes-seta{font-style:normal;font-size:12px;opacity:.85}
.rh-mes-menu{position:absolute;top:52px;left:40px;z-index:30;width:280px;padding:12px;border-radius:16px;background:#fff;border:1px solid #dfe7f2;box-shadow:0 20px 50px rgba(15,45,99,.25);animation:modalIn .15s ease}
.rh-mm-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.rh-mm-h b{font-size:18px;color:#0f2d63}
.rh-mm-h button{width:32px;height:32px;border-radius:10px;border:1px solid #d5deeb;background:#f5f9ff;color:#1d4f91;font-weight:800;cursor:pointer}
.rh-mm-g{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.rh-mm-g button{height:40px;border-radius:10px;border:1px solid #e3eaf4;background:#fff;color:#34425a;font-weight:700;cursor:pointer;transition:background .12s}
.rh-mm-g button:hover{background:#eef4ff;border-color:#2c63c9;color:#1d4f91}
.rh-mm-g button.hoje{border-color:#2c63c9}
.rh-mm-g button.sel{background:linear-gradient(120deg,#1d4f91,#2c63c9);color:#fff;border-color:transparent;box-shadow:0 6px 14px rgba(44,99,201,.3)}
.rh-mm-p{margin-top:10px;display:flex;justify-content:center}
.rh-mm-p button{border:none;background:none;color:#2c63c9;font-weight:700;cursor:pointer;font-size:12px}
/* busca e botões */
.rh-busca{height:44px;border-radius:12px;border:1px solid #d5deeb;background:#fff}
.rh-busca span svg{width:17px;height:17px;fill:none;stroke:#2c63c9;stroke-width:2.2;stroke-linecap:round}
.rh-btn2{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 16px;border-radius:12px;border:1px solid #2c63c9;background:#fff;color:#1d4f91;font-weight:800;font-size:13px;cursor:pointer;transition:background .15s,box-shadow .15s}
.rh-btn2 svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.rh-btn2:hover{background:#eef4ff;box-shadow:0 6px 14px rgba(44,99,201,.18)}
.rh-btn2.prim{background:linear-gradient(120deg,#0f2d63,#2c63c9);color:#fff;border-color:transparent;box-shadow:0 8px 18px rgba(44,99,201,.3)}
.rh-btn2.prim:hover{box-shadow:0 12px 24px rgba(44,99,201,.42)}
.rh-top .rh-acts{display:flex;gap:8px}

/* V9.6.21 — título + abas na mesma linha, espaçamento uniforme, pulso nos indicadores, linhas no menu */
.topbar{margin-bottom:14px}
.topbar-copy-wrap{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.topbar-copy-wrap h1{margin:0}
body[data-view="pj"] #pageSubtitle{display:none}
body[data-view="pj"] .topbar{margin-bottom:14px;align-items:center}
.topbar-copy-wrap .rh-abas{margin:0}
#view-pj .rh-top,#view-pj .rh-kpis,#view-pj .rh-panel{margin-top:0;margin-bottom:14px}
#view-pj .rh-kpis{gap:14px}
/* pulso cardíaco discreto passando atrás de cada indicador */
.rh-kpi>*{position:relative;z-index:1}
.rh-kpi::after{content:"";position:absolute;inset:auto 0 6px 0;height:34px;z-index:0;pointer-events:none;opacity:.16;background:var(--c);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 34'%3E%3Cpath d='M0 20H38l4-9 5 18 6-26 5 30 4-13h58' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round' stroke-linecap='round'/%3E%3C/svg%3E") 0 50%/120px 34px repeat-x;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 34'%3E%3Cpath d='M0 20H38l4-9 5 18 6-26 5 30 4-13h58' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round' stroke-linecap='round'/%3E%3C/svg%3E") 0 50%/120px 34px repeat-x;
  animation:rhPulso 6s linear infinite}
.rh-kpi:nth-child(2n)::after{animation-duration:7.5s;animation-delay:-2s}
.rh-kpi:nth-child(3n)::after{animation-duration:5.2s;animation-delay:-4s}
.rh-kpi.sel::after{background:#fff;opacity:.28}
@keyframes rhPulso{from{-webkit-mask-position:0 50%;mask-position:0 50%}to{-webkit-mask-position:-120px 50%;mask-position:-120px 50%}}
/* menu lateral: linhas finas descendo (fundo, não pega clique) */
.edge-sidebar{isolation:isolate}
.edge-sidebar::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.55;
  background:
    linear-gradient(180deg,transparent 0,rgba(90,160,255,.0) 40%,rgba(90,170,255,.55) 50%,transparent 51%) 18% 0/1px 260px repeat-y,
    linear-gradient(180deg,transparent 0,rgba(120,200,255,.45) 50%,transparent 51%) 46% 0/1px 340px repeat-y,
    linear-gradient(180deg,transparent 0,rgba(90,160,255,.5) 50%,transparent 51%) 72% 0/1px 220px repeat-y,
    linear-gradient(180deg,transparent 0,rgba(150,210,255,.35) 50%,transparent 51%) 88% 0/1px 300px repeat-y;
  animation:rhChuva 9s linear infinite}
@keyframes rhChuva{from{background-position:18% 0,46% 0,72% 0,88% 0}to{background-position:18% 780px,46% 1020px,72% 660px,88% 900px}}
@media (prefers-reduced-motion:reduce){.rh-kpi::after,.edge-sidebar::before{animation:none}}

/* V9.6.22 — menu lateral: trilhas de circuito com rastros de luz (imagem animada, não pega clique) */
.edge-sidebar::before{background:url("media/circuito.svg") center top/100% auto repeat-y;opacity:.9;animation:none}
@media (prefers-reduced-motion:reduce){.edge-sidebar::before{background:none}}

/* V9.6.23 — troca de página: onda de luz rápida correndo pelas trilhas do circuito */
.edge-sidebar::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0;
  background:linear-gradient(180deg,transparent 0,rgba(127,212,255,0) 30%,rgba(160,225,255,.95) 46%,#fff 50%,rgba(160,225,255,.9) 54%,rgba(127,212,255,0) 70%,transparent 100%) 0 -120%/100% 60% no-repeat;
  -webkit-mask:url("media/circuito-trilhas.svg?v=9") center top/100% 100% no-repeat;mask:url("media/circuito-trilhas.svg?v=9") center top/100% 100% no-repeat;
  filter:drop-shadow(0 0 4px rgba(127,212,255,.9))}
.edge-sidebar.sb-onda::after{animation:sbOnda 1s cubic-bezier(.55,.1,.35,1) forwards}
@keyframes sbOnda{0%{opacity:1;background-position:0 -120%}85%{opacity:1}100%{opacity:0;background-position:0 260%}}
@media (prefers-reduced-motion:reduce){.edge-sidebar.sb-onda::after{animation:none}}
/* V9.6.23 — parado enquanto trabalha: só as trilhas apagadas; a luz corre apenas na troca de página */
.edge-sidebar::before{background:rgba(90,160,255,.16);-webkit-mask:url("media/circuito-trilhas.svg?v=9") center top/100% 100% no-repeat;mask:url("media/circuito-trilhas.svg?v=9") center top/100% 100% no-repeat;opacity:1;animation:none}
/* V9.6.24 — onda de luz em camada própria (transform/opacity): não trava quando a página demora a carregar */
.edge-sidebar::after{display:none}
.sb-onda{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden;
  -webkit-mask:url("media/circuito-trilhas.svg?v=9") center top/100% 100% no-repeat;mask:url("media/circuito-trilhas.svg?v=9") center top/100% 100% no-repeat}
.sb-onda i{position:absolute;left:0;right:0;top:0;height:40%;opacity:0;transform:translate3d(0,-100%,0);will-change:transform,opacity;
  background:linear-gradient(180deg,transparent 0,rgba(127,212,255,.15) 25%,rgba(170,230,255,.95) 47%,#fff 50%,rgba(170,230,255,.9) 53%,rgba(127,212,255,.15) 75%,transparent 100%)}
.edge-sidebar.sb-onda-on .sb-onda i{animation:sbOnda2 1s cubic-bezier(.55,.1,.35,1) forwards}
@keyframes sbOnda2{0%{opacity:1;transform:translate3d(0,-100%,0)}85%{opacity:1}100%{opacity:0;transform:translate3d(0,260%,0)}}
@media (prefers-reduced-motion:reduce){.edge-sidebar.sb-onda-on .sb-onda i{animation:none}}

/* V9.6.25 — menu: ao passar o mouse, um raio de luz percorre a borda do botão */
@property --raio{syntax:'<angle>';inherits:false;initial-value:0deg}
.edge-sidebar nav button{position:relative;isolation:isolate}
.edge-sidebar nav button::before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1.5px;pointer-events:none;opacity:0;
  background:conic-gradient(from var(--raio),transparent 0deg,transparent 250deg,rgba(127,212,255,.25) 290deg,#bfe9ff 340deg,#fff 352deg,transparent 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);
  filter:drop-shadow(0 0 3px rgba(127,212,255,.9))}
.edge-sidebar nav button:hover::before{animation:navRaio .7s cubic-bezier(.5,.1,.3,1) forwards}
@keyframes navRaio{0%{opacity:1;--raio:0deg}80%{opacity:1}100%{opacity:.35;--raio:360deg}}
@media (prefers-reduced-motion:reduce){.edge-sidebar nav button:hover::before{animation:none;opacity:.5}}
/* V9.6.26 — no lugar do raio: luz suave que acende nas bordas ao passar o mouse */
.edge-sidebar nav button::before{background:linear-gradient(135deg,rgba(127,212,255,.75),rgba(160,120,255,.45),rgba(127,212,255,.75));filter:none;transition:opacity .45s ease}
.edge-sidebar nav button:hover::before{animation:none;opacity:1}
.edge-sidebar nav button{transition:box-shadow .45s ease,background .3s ease,color .3s ease}
.edge-sidebar nav button:hover{box-shadow:0 0 14px rgba(127,212,255,.28),inset 0 0 10px rgba(127,212,255,.08)}
/* V9.6.28 — só 2 trilhas: um pouco mais visíveis */
.edge-sidebar::before{background:rgba(110,180,255,.28)}
/* V9.6.31 — botões do menu com a largura da maior opção (não cobrem as trilhas à direita) */
.edge-sidebar nav{width:max-content;max-width:calc(100% - 52px)}
.edge-sidebar nav button{width:100%;padding-right:18px}
/* V9.6.32 — circuito mais completo na faixa direita: trilhas um pouco mais discretas */
.edge-sidebar::before{background:rgba(110,180,255,.22)}
/* V9.6.33 — circuito começa abaixo do logo, numa linha (barramento) de onde as trilhas descem */
.edge-sidebar::before,.sb-onda{top:218px;bottom:0;height:auto}
/* V9.6.34 — circuito um pouco abaixo do texto e terminando antes do rodapé (usuário, Portal, Sair) */
.edge-sidebar::before,.sb-onda{top:226px;bottom:160px}
/* V9.6.35 — trilhas saem da borda direita e terminam na linha do rodapé (dados do login) */
.edge-sidebar::before,.sb-onda{top:226px;bottom:132px}
/* V9.6.37 — sem circuitos: na troca de página uma luz passa pelo painel inteiro */
.edge-sidebar::before{display:none}
.sb-onda{top:0;bottom:0;-webkit-mask:none;mask:none}
.sb-onda i{height:34%;background:linear-gradient(180deg,transparent 0,rgba(90,160,255,.06) 30%,rgba(127,212,255,.16) 46%,rgba(210,240,255,.55) 49.5%,rgba(255,255,255,.75) 50%,rgba(210,240,255,.55) 50.5%,rgba(127,212,255,.16) 54%,rgba(90,160,255,.06) 70%,transparent 100%)}
@keyframes sbOnda2{0%{opacity:1;transform:translate3d(0,-100%,0)}85%{opacity:1}100%{opacity:0;transform:translate3d(0,300%,0)}}
/* V9.6.38 — luz bem discreta: um brilho difuso e suave, sem fio/feixe */
.sb-onda i{height:60%;background:radial-gradient(ellipse 70% 50% at 50% 50%,rgba(120,190,255,.10),rgba(120,190,255,.04) 45%,transparent 70%)}
.edge-sidebar.sb-onda-on .sb-onda i{animation:sbOnda2 1.3s ease-in-out forwards}
@keyframes sbOnda2{0%{opacity:0;transform:translate3d(0,-80%,0)}25%{opacity:1}75%{opacity:1}100%{opacity:0;transform:translate3d(0,170%,0)}}
/* V9.6.39 — luz correndo por trilhas invisíveis: o circuito só aparece onde a luz passa */
.edge-sidebar::before{display:none}
.sb-onda{top:226px;bottom:132px;-webkit-mask:url("media/circuito-trilhas.svg?v=9") center top/100% 100% no-repeat;mask:url("media/circuito-trilhas.svg?v=9") center top/100% 100% no-repeat}
.sb-onda i{height:32%;background:linear-gradient(180deg,transparent 0,rgba(127,212,255,.25) 35%,rgba(190,235,255,.9) 70%,#fff 100%)}
.edge-sidebar.sb-onda-on .sb-onda i{animation:sbOnda2 1.1s cubic-bezier(.5,.1,.4,1) forwards}
@keyframes sbOnda2{0%{opacity:1;transform:translate3d(0,-100%,0)}85%{opacity:1}100%{opacity:0;transform:translate3d(0,320%,0)}}
/* V9.6.40 — luz por trilhas invisíveis no painel todo, mais rápida */
.sb-onda{-webkit-mask:url("media/circuito-painel.svg?v=1") center top/100% 100% no-repeat;mask:url("media/circuito-painel.svg?v=1") center top/100% 100% no-repeat}
.edge-sidebar.sb-onda-on .sb-onda i{animation:sbOnda2 .65s cubic-bezier(.45,.05,.4,1) forwards}
/* V9.6.41 — seleção/hover do menu na largura toda da coluna */
.edge-sidebar nav{width:auto;max-width:none}
/* V9.6.42 — luz nasce no topo e passa por trás do logo (bloco do logo como capa), depois segue pelas trilhas */
.sb-onda{top:0;bottom:132px}
.sidebar-brand-logo{position:relative;z-index:1}
.sidebar-brand-logo::before{content:"";position:absolute;z-index:-1;left:-40px;right:-40px;top:-120px;bottom:0;pointer-events:none;
  background:linear-gradient(180deg,var(--sidebar) 0,var(--sidebar) 88%,rgba(13,23,48,0) 100%)}
.sidebar-brand-logo::after{content:"";position:absolute;left:-40px;right:-40px;bottom:0;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(127,212,255,.14),transparent)}
.edge-sidebar.sb-onda-on .sidebar-logo{animation:logoVaza .6s ease-out}
@keyframes logoVaza{0%{filter:drop-shadow(0 0 0 rgba(127,212,255,0))}35%{filter:drop-shadow(0 0 10px rgba(127,212,255,.55)) drop-shadow(0 0 2px rgba(200,240,255,.8))}100%{filter:drop-shadow(0 0 0 rgba(127,212,255,0))}}
@media (prefers-reduced-motion:reduce){.edge-sidebar.sb-onda-on .sidebar-logo{animation:none}}

/* V9.6.47 — RH mais compacto: sem pulso, abas na largura toda, indicadores e barra mais baixos */
.rh-kpi::after{display:none}
.topbar-copy-wrap{flex:1;flex-wrap:nowrap;gap:16px}
.topbar-copy-wrap>div:not(.rh-abas){flex:none}
.topbar-copy-wrap .rh-abas{flex:1;display:flex;flex-wrap:nowrap;gap:4px;padding:5px}
.rh-abas .pj-tab{flex:1;justify-content:center;padding:7px 8px;white-space:nowrap}
.rh-abas .tab-ic{width:24px;height:24px}
body[data-view="pj"] .topbar{margin-bottom:10px}
#view-pj .rh-top{padding:7px 10px;margin-bottom:10px}
#view-pj .rh-nav2,#view-pj .rh-mes-btn,#view-pj .rh-busca,#view-pj .rh-btn2{height:38px}
#view-pj .rh-mes-btn{min-width:210px}
#view-pj .rh-mes-btn em{display:none}
#view-pj .rh-kpis{gap:8px;margin-bottom:10px}
#view-pj .rh-kpi{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:7px 10px;min-height:0;text-align:left;border-top-width:3px}
#view-pj .rh-kpi small{font-size:9px;white-space:normal;line-height:1.15}
#view-pj .rh-kpi strong{font-size:18px;line-height:1}
#view-pj .rh-kpi em{display:none}
#view-pj .rh-panel{padding:8px 10px 4px}

/* V9.6.48 — RH: título e abas integrados ao topo da página (faixa presa em cima), indicadores com nome inteiro */
body[data-view="pj"] .workspace{padding-top:0}
body[data-view="pj"] .topbar{position:sticky;top:0;z-index:30;margin:0 -26px 12px;padding:8px 26px;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid #dfe7f2;box-shadow:0 6px 18px rgba(20,50,100,.06)}
body[data-view="pj"] .topbar h1{font-size:24px;padding-right:16px;border-right:1px solid #dfe7f2}
body[data-view="pj"] .topbar-copy-wrap .rh-abas{background:transparent;border:none;box-shadow:none;padding:0}
#view-pj .rh-kpi small{white-space:normal;overflow:visible;text-overflow:clip;letter-spacing:.03em}
#view-pj .rh-kpis{grid-template-columns:repeat(auto-fit,minmax(104px,1fr))}
@media(min-width:1280px){#view-pj .rh-kpis{grid-template-columns:repeat(12,minmax(0,1fr))}}

/* V9.6.49 — abas do RH sem o marcador deslizante antigo (aparecia como sombra de botão); indicadores sem cortar */
.rh-abas .pj-ind{display:none!important}
#view-pj .rh-kpi{display:grid;grid-template-rows:auto auto;justify-items:center;align-content:center;text-align:center;gap:3px;padding:7px 6px;min-height:58px}
#view-pj .rh-kpi small{font-size:9px;line-height:1.15;max-width:100%}
#view-pj .rh-kpi strong{font-size:19px;line-height:1.05;white-space:nowrap}

/* V9.6.50 — indicadores do RH: conteúdo centralizado e nuvens de cor passando atrás (cor do indicador) */
#view-pj .rh-kpi{justify-items:center!important;text-align:center!important}
#view-pj .rh-kpi small,#view-pj .rh-kpi strong{text-align:center;justify-self:center;width:100%}
#view-pj .rh-kpi>*{position:relative;z-index:1}
#view-pj .rh-kpi::after{display:block;content:"";position:absolute;z-index:0;pointer-events:none;inset:-40% -60%;height:auto;opacity:.55;
  -webkit-mask:none;mask:none;filter:blur(10px);
  background:radial-gradient(closest-side at 30% 55%,color-mix(in srgb,var(--c) 38%,transparent),transparent),
             radial-gradient(closest-side at 70% 40%,color-mix(in srgb,var(--c) 26%,transparent),transparent),
             radial-gradient(closest-side at 50% 80%,color-mix(in srgb,var(--c) 20%,transparent),transparent);
  animation:kpiNuvem 9s ease-in-out infinite alternate;will-change:transform}
#view-pj .rh-kpi:nth-child(2n)::after{animation-duration:11s;animation-delay:-3s}
#view-pj .rh-kpi:nth-child(3n)::after{animation-duration:13s;animation-delay:-6s}
#view-pj .rh-kpi.sel::after{opacity:.35;background:radial-gradient(closest-side at 40% 50%,rgba(255,255,255,.45),transparent),radial-gradient(closest-side at 70% 60%,rgba(255,255,255,.3),transparent)}
@keyframes kpiNuvem{0%{transform:translate3d(-18%,4%,0) scale(1)}50%{transform:translate3d(8%,-6%,0) scale(1.1)}100%{transform:translate3d(20%,6%,0) scale(.95)}}
@media (prefers-reduced-motion:reduce){#view-pj .rh-kpi::after{animation:none}}
/* V9.6.51 — indicadores: coluna interna na largura toda do cartão (o texto centraliza de verdade) */
#view-pj .rh-kpi{grid-template-columns:minmax(0,1fr)!important;justify-content:stretch!important;align-items:center}
#view-pj .rh-kpi small,#view-pj .rh-kpi strong{grid-column:1;width:100%;margin:0}
/* V9.6.52 — C.C e departamento: número pequeno e a descrição ao lado */
.rh-ficha .rh-cod{flex-direction:row;align-items:stretch;gap:8px}
.rh-ficha .rh-cod input{width:78px;flex:none;text-align:center;font-weight:800}
.rh-ficha .rh-cod span{flex:1;display:flex;align-items:center;padding:0 12px;min-height:36px;border:1px solid #dfe7f2;border-radius:10px;background:#f5f9ff;color:#0f2d63;font-size:12.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* V9.6.52 — impostos editáveis na ficha */
.rh-imp-g{margin-top:8px}
.rh-imp-g>small{display:block;text-align:center;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#5b6b85;margin-bottom:6px}
.rh-imp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.rh-imp-f{display:grid;justify-items:center;gap:3px;padding:8px;border:1px solid #e3eaf4;border-radius:12px;background:#fff;text-align:center}
.rh-imp-f span{font-size:10.5px;font-weight:700;color:#34425a}
.rh-imp-f input{width:100%;text-align:center;font-weight:800;font-size:14px;color:#0f2d63;border:1px solid #d5deeb;border-radius:8px;padding:5px;background:#f8fbff}
.rh-imp-f input:focus{outline:none;border-color:#2c63c9;box-shadow:0 0 0 3px rgba(44,99,201,.15)}
.rh-imp-f em{font-style:normal;font-size:9.5px;color:#7b8698;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.rh-imp-f.tem{border-color:#c9d8f0;background:linear-gradient(180deg,#f3f7ff,#fff)}
.rh-imp-f.editado{border-color:#d9772b;background:linear-gradient(180deg,#fff6ee,#fff)}
.rh-imp-f.editado em{color:#b4541a;font-weight:700}
/* V9.6.53 — valores do holerite editáveis na tabela */
.rh-hol-t input.rh-rub{width:96px;text-align:right;font:inherit;font-variant-numeric:tabular-nums;color:#243049;border:1px solid transparent;border-radius:6px;padding:2px 6px;background:transparent;transition:border-color .15s,background .15s}
.rh-hol-t input.rh-rub:hover{border-color:#d5deeb;background:#f8fbff}
.rh-hol-t input.rh-rub:focus{outline:none;border-color:#2c63c9;background:#fff;box-shadow:0 0 0 3px rgba(44,99,201,.15)}
.rh-hol-t input.rh-rub.editado{border-color:#f0c9a4;background:#fff6ee;color:#b4541a;font-weight:700}
.rh-rub-h{display:block;font-size:9px;color:#b4541a;text-align:right;line-height:1.1}
.rh-rub-ed{color:#b4541a;font-weight:700}
/* V9.6.54 — C.C/Depto: botões − e + grandes no lugar das setinhas */
.rh-ficha .rh-cod input{width:58px;-moz-appearance:textfield}
.rh-ficha .rh-cod input::-webkit-inner-spin-button,.rh-ficha .rh-cod input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.rh-step{flex:none;width:34px;min-height:36px;border-radius:10px;border:1px solid #c9d8f0;background:linear-gradient(180deg,#f3f7ff,#e6efff);color:#1d4f91;font-size:18px;font-weight:800;line-height:1;cursor:pointer;transition:background .15s,transform .1s}
.rh-step:hover{background:linear-gradient(180deg,#e6efff,#d4e3ff);border-color:#2c63c9}
.rh-step:active{transform:scale(.94)}
.rh-step:disabled{opacity:.4;cursor:default}
.rh-ficha .rh-cod{gap:6px}
/* V9.6.55 — KPIs do cabeçalho da ficha centralizados; animação nos botões imprimir/fechar; histórico por campo */
.rh-head .rh-hk{text-align:center;justify-items:center}
.rh-head .rh-print,.rh-head [data-close-modal].icon-btn{transition:transform .22s cubic-bezier(.3,1.6,.5,1),background .2s,box-shadow .2s,border-color .2s}
.rh-head .rh-print:hover{transform:translateY(-2px) scale(1.08);background:rgba(255,255,255,.22);box-shadow:0 0 0 3px rgba(125,190,255,.35),0 6px 16px rgba(0,0,0,.25)}
.rh-head .rh-print:hover{animation:rhImp .6s ease}
@keyframes rhImp{30%{transform:translateY(-4px) scale(1.1)}60%{transform:translateY(0) scale(1.06)}100%{transform:translateY(-2px) scale(1.08)}}
.rh-head [data-close-modal].icon-btn:hover{transform:rotate(90deg) scale(1.08);background:rgba(239,68,68,.85);border-color:transparent;color:#fff;box-shadow:0 6px 16px rgba(239,68,68,.4)}
.rh-hist{display:inline-grid;place-items:center;width:18px;height:18px;margin-left:4px;padding:0;border:0;border-radius:50%;background:transparent;color:#8a97ab;cursor:pointer;vertical-align:middle;transition:background .15s,color .15s}
.rh-hist svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.rh-hist:hover{background:#e6efff;color:#1d4f91}
.rh-hist-pop{position:fixed;z-index:9999;width:320px;max-height:260px;display:flex;flex-direction:column;background:#fff;border:1px solid #d6e0ef;border-radius:12px;box-shadow:0 14px 34px rgba(16,32,64,.22);font-size:12.5px}
.rh-hist-h{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;font-weight:800;color:#1d4f91;border-bottom:1px solid #edf1f7}
.rh-hist-h button{border:0;background:none;font-size:18px;cursor:pointer;color:#8a97ab}
.rh-hist-l{overflow:auto;padding:6px 12px 10px}
.rh-hist-i{display:grid;gap:2px;padding:7px 0;border-bottom:1px dashed #e6ebf3}.rh-hist-i:last-child{border:0}
.rh-hist-i s{color:#b4202a}.rh-hist-i em{color:#177245;font-style:normal;font-weight:700}.rh-hist-i small{color:#7b8698}
