/* ProspectaEmpresa — Design System (pele analítica premium)
   Fonte: IBM Plex Sans · ver HANDOFF.md para tokens documentados */
:root{
  --navy-950:#0f2c3f; --navy-900:#143850; --navy-800:#1b4763; --navy:#1f4e6b;
  --steel:#4f9dc9; --steel-soft:#bcd9ec; --steel-tint:#eaf2f8;
  --ink:#1e2b34; --ink-2:#51626e; --ink-3:#8798a3; --ink-4:#b4c1c9;
  --bg:#f6f8fa; --card:#ffffff; --line:#e6ebef; --line-2:#eef2f5; --bar:#dbe4ea;
  --up:#2e8b6a; --up-soft:#e2f0ea;
  --down:#c0604f; --down-soft:#f5e3de;
  --amber:#a07419; --amber-soft:#f5ecd4;
  --r:6px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{-webkit-font-smoothing:antialiased;}
body{font-family:'IBM Plex Sans',sans-serif; color:var(--ink); font-size:13px; min-height:100vh;
  background:radial-gradient(900px 320px at 70% -80px, rgba(79,157,201,.07), transparent 70%), linear-gradient(180deg,#f1f4f7 0%, var(--bg) 320px);}
button{font-family:inherit; cursor:pointer; border:none; background:none; color:inherit;}
select,input{font-family:inherit;}
a{text-decoration:none; color:inherit;}
.num{font-variant-numeric:tabular-nums;}
.app{display:flex; min-height:100vh;}

/* ═══ SIDEBAR ═══ */
.side{width:232px; flex:none; background:var(--navy-950); color:#b9cdd9; display:flex; flex-direction:column; position:sticky; top:0; height:100vh; overflow-y:auto;}
.brand{display:flex; align-items:center; gap:11px; padding:22px 20px 16px;}
.brand-mark{width:34px; height:34px; background:var(--navy-800); border-radius:7px; display:flex; align-items:center; justify-content:center; flex:none;}
.brand-mark svg{width:16px; height:16px; stroke:#fff; fill:none; stroke-width:2; stroke-linecap:round;}
.brand-name{font-size:13.5px; font-weight:600; color:#fff; letter-spacing:-.01em;}
.brand-sub{font-size:10px; color:#6f8ea0; margin-top:1px;}

.side-sep{height:1px; background:rgba(255,255,255,.08); margin:0 20px 12px;}
.ngroup{padding:0 12px; margin-bottom:8px;}
.ngroup-t{font-size:9.5px; font-weight:600; text-transform:uppercase; letter-spacing:.1em; color:#5d7d91; padding:8px 12px 7px;}
.nitem{display:flex; align-items:center; gap:11px; padding:9px 12px; border-radius:var(--r); font-size:12.5px; font-weight:500; color:#b9cdd9; cursor:pointer; margin-bottom:1px; position:relative;}
.nitem svg{width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; flex:none;}
.nitem:hover{background:rgba(255,255,255,.06); color:#fff;}
.nitem.active{background:var(--navy-800); color:#fff; font-weight:600;}
.nitem.active::before{content:''; position:absolute; left:-12px; top:7px; bottom:7px; width:3px; border-radius:0 3px 3px 0; background:var(--steel);}
.nbadge{margin-left:auto; font-size:10px; font-weight:700; background:var(--amber-soft); color:var(--amber); border-radius:99px; padding:2px 8px; font-variant-numeric:tabular-nums;}
.nbadge.blue{background:var(--navy-800); color:#9cc3dc;}

.side-foot{margin-top:auto; padding:14px 16px; border-top:1px solid rgba(255,255,255,.08); display:flex; align-items:center; gap:10px;}
.foot-av{width:32px; height:32px; border-radius:7px; background:var(--navy-800); color:#9cc3dc; font-size:11px; font-weight:700; display:flex; align-items:center; justify-content:center; flex:none;}
.foot-name{font-size:12px; font-weight:600; color:#fff;}
.foot-role{font-size:10px; color:#6f8ea0; margin-top:1px;}

/* ═══ MAIN ═══ */
.main{flex:1; min-width:0; display:flex; flex-direction:column;}
.topbar{background:var(--card); border-bottom:1px solid var(--line); padding:0 28px; height:58px; display:flex; align-items:center; gap:18px; position:sticky; top:0; z-index:5;}
.tb-title{font-size:15px; font-weight:600; letter-spacing:-.01em; white-space:nowrap;}
.tb-kick{font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-3); border-left:1px solid var(--line); padding-left:18px;}
.tb-spacer{flex:1;}
.tb-search{display:flex; align-items:center; gap:8px; background:var(--bg); border:1px solid var(--line); border-radius:var(--r); padding:7px 12px; width:220px; color:var(--ink-3); font-size:12px; white-space:nowrap;}
.tb-search svg{width:13px; height:13px; stroke:var(--ink-3); fill:none; stroke-width:2; stroke-linecap:round;}
.tb-search kbd{margin-left:auto; font-family:inherit; font-size:9.5px; color:var(--ink-4); border:1px solid var(--line); border-radius:4px; padding:1px 5px; background:#fff;}
.tb-date{font-size:11.5px; color:var(--ink-3); white-space:nowrap;}
.tb-date b{color:var(--ink-2); font-weight:600;}
.btn-sel{display:inline-flex; align-items:center; gap:7px; font-size:12px; font-weight:500; color:var(--ink-2); border:1px solid var(--line); border-radius:7px; padding:8px 13px; background:linear-gradient(180deg,#fff,#fafbfc); box-shadow:inset 0 1px 0 #fff, 0 1px 1px rgba(15,44,63,.04); white-space:nowrap;}
.btn-sel:hover{border-color:var(--ink-4); color:var(--ink);}
.btn-sel svg{width:13px; height:13px; stroke:var(--ink-3); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
.btn-primary{display:inline-flex; align-items:center; gap:8px; font-size:12px; font-weight:600; letter-spacing:.01em; color:#fff;
  background:linear-gradient(180deg, #266087 0%, var(--navy) 55%, #1a445e 100%);
  border:1px solid #163d56; border-radius:7px; padding:9px 18px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16); transition:filter .12s, transform .05s;}
.btn-primary:hover{filter:brightness(1.08);}
.btn-primary:active{transform:translateY(1px); box-shadow:inset 0 1px 3px rgba(0,0,0,.2);}
.btn-primary:focus-visible{outline:2px solid var(--steel); outline-offset:2px;}
.btn-primary svg{width:13px; height:13px; stroke:#fff; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
.btn-ghost{display:inline-flex; align-items:center; gap:8px; font-size:12px; font-weight:500; color:var(--ink-2);
  border:1px solid var(--line); border-radius:7px; padding:8px 15px; background:linear-gradient(180deg,#fff,#fafbfc);
  box-shadow:inset 0 1px 0 #fff, 0 1px 1px rgba(15,44,63,.04); transition:border-color .12s, color .12s;}
.btn-ghost:hover{border-color:var(--ink-4); color:var(--ink);}
.btn-ghost:active{background:var(--bg); box-shadow:inset 0 1px 2px rgba(15,44,63,.08);}
.btn-ghost:focus-visible{outline:2px solid var(--steel); outline-offset:2px;}

.content{padding:22px 28px 48px; max-width:1240px; width:100%;}
.page{display:block; animation:fade .18s ease;}
@keyframes fade{from{opacity:0; transform:translateY(3px);} to{opacity:1; transform:none;}}

.ph{margin-bottom:18px;}
.ph-sub{font-size:12.5px; color:var(--ink-2); line-height:1.6; max-width:660px;}

/* KPI strip */
.kpis{display:grid; grid-template-columns:repeat(4,1fr); background:var(--card); border:1px solid var(--line); border-radius:8px; overflow:hidden; margin-bottom:18px;}
@media(max-width:1240px){ .kpis{grid-template-columns:1fr 1fr;} }
.kpis.lead-first{grid-template-columns:1.25fr 1fr 1fr 1fr;}
@media(max-width:1240px){ .kpis.lead-first{grid-template-columns:1fr 1fr;} }
.kpi{padding:20px 24px 16px; position:relative; transition:background .15s;}
.kpi:hover{background:#fbfcfd;}
.kpi + .kpi{border-left:1px solid var(--line-2);}
@media(max-width:1240px){ .kpi:nth-child(3){border-left:none;} .kpi:nth-child(n+3){border-top:1px solid var(--line-2);} }
@media(max-width:1180px){ .tb-date{display:none;} .tb-search{width:150px;} .tb-search span{display:none;} }
@media(max-width:980px){ .btn-sel{display:none;} }
.kpi.lead{background:linear-gradient(180deg,#fbfdfe, #fff 60%);}
.kpi.lead::before{content:''; position:absolute; top:-1px; left:-1px; right:-1px; height:3px; background:linear-gradient(90deg, var(--navy), var(--steel)); border-radius:8px 8px 0 0;}
.kpi-top{display:flex; align-items:center; justify-content:space-between; gap:8px;}
.kpi-label{font-size:9.5px; font-weight:600; text-transform:uppercase; letter-spacing:.07em; color:var(--ink-3); display:flex; align-items:center; gap:7px; white-space:nowrap;}
.kpi-label::before{content:''; width:6px; height:6px; border-radius:2px; background:var(--ink-4); flex:none;}
.kpi:nth-child(1) .kpi-label::before{background:var(--navy);}
.kpi:nth-child(2) .kpi-label::before{background:var(--steel);}
.kpi:nth-child(3) .kpi-label::before{background:var(--up);}
.kpi:nth-child(4) .kpi-label::before{background:var(--amber);}
.kpi-delta{font-size:10px; font-weight:700; border-radius:5px; padding:2.5px 7px; font-variant-numeric:tabular-nums; letter-spacing:.02em;}
.kpi-delta.up{background:var(--up-soft); color:var(--up); border:1px solid #cbe5d9;}
.kpi-delta.down{background:var(--down-soft); color:var(--down); border:1px solid #ecd0c8;}
.kpi-delta.warn{background:var(--amber-soft); color:var(--amber); border:1px solid #e9dab1;}
.kpi-value{font-size:28px; font-weight:700; letter-spacing:-.025em; margin-top:12px; font-variant-numeric:tabular-nums; line-height:1;}
.kpi-value small{font-size:12.5px; font-weight:500; color:var(--ink-3); letter-spacing:0;}
.kpi-foot{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:14px; padding-top:11px; border-top:1px dashed var(--line); min-height:42px;}
.kpi-sub{font-size:10.5px; color:var(--ink-3); line-height:1.5; max-width:170px;}
.kpi-sub b{color:var(--ink); font-weight:600;}
.kpi-foot .link{white-space:nowrap; flex:none;}
.spark{width:84px; height:30px; flex:none;}
.spark polyline{fill:none; stroke:var(--navy); stroke-width:1.8; stroke-linejoin:round; stroke-linecap:round;}
.spark polygon{fill:url(#sparkFill); stroke:none;}
.spark .base{stroke:var(--line); stroke-width:1; stroke-dasharray:2 3;}
.spark circle{fill:var(--steel); stroke:#fff; stroke-width:1.5; r:2.6;}
.kico{width:36px; height:36px; border-radius:10px; display:flex; align-items:center; justify-content:center; flex:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 4px 10px -3px rgba(15,44,63,.4);}
.kico svg{width:18px; height:18px; fill:#fff; stroke:none;}
.kpi:nth-child(1) .kico{background:linear-gradient(150deg,#2a6089, var(--navy) 60%, #17405c);}
.kpi:nth-child(2) .kico{background:linear-gradient(150deg,#63a9d1, #3d84ad 60%, #2f6c91);}
.kpi:nth-child(3) .kico{background:linear-gradient(150deg,#3d9b78, #2e8b6a 60%, #227054);}
.kpi:nth-child(4) .kico{background:linear-gradient(150deg,#c9a044, #a98420 60%, #8a6c15);}
.kpi-id{display:flex; align-items:center; gap:10px;}
.kpi-id .kpi-label::before{display:none;}
.link{font-size:11.5px; font-weight:600; color:var(--navy); background:none; cursor:pointer; border-radius:5px; padding:4px 8px; margin:-4px -8px; transition:background .12s; display:inline-block;}
.link:hover{background:var(--steel-tint);}

/* cards e grids */
.cols{display:grid; grid-template-columns:1.6fr 1fr; gap:18px; align-items:start;}
@media(max-width:980px){ .cols{grid-template-columns:1fr;} }
.grid2{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
@media(max-width:680px){ .grid2{grid-template-columns:1fr;} }
.card{background:var(--card); border:1px solid var(--line); border-radius:10px;
  box-shadow:0 1px 2px rgba(16,42,67,.04), 0 12px 28px -18px rgba(16,42,67,.14);}
.card + .card{margin-top:18px;}
.card-head{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 22px 0;}
.card-title{font-size:13px; font-weight:600; display:flex; align-items:center; gap:8px;}
.card-title::before{content:''; width:3px; height:14px; border-radius:3px; background:linear-gradient(180deg,var(--steel),var(--navy)); flex:none;}
.card-sub{font-size:11px; color:var(--ink-3); margin-top:3px; padding-left:11px;}
.card-body{padding:16px 22px 20px;}
.card-cta{display:block; text-align:center; font-size:12px; font-weight:600; color:var(--navy); border-top:1px solid var(--line-2); padding:12px; width:100%; border-radius:0 0 10px 10px; transition:background .15s, letter-spacing .15s;}
.card-cta:hover{background:var(--steel-tint); letter-spacing:.02em;}
.seg{display:flex; background:var(--bg); border:1px solid var(--line); border-radius:var(--r); padding:2px;}
.seg button{font-size:11px; font-weight:500; color:var(--ink-3); padding:5px 12px; border-radius:4px;}
.seg button.on{background:var(--card); color:var(--ink); font-weight:600; box-shadow:0 1px 2px rgba(20,40,55,.08);}

/* formulários */
.field{margin-bottom:15px;}
.field label{display:block; font-size:11.5px; font-weight:600; color:var(--ink-2); margin-bottom:6px;}
.field input, .field select{width:100%; padding:9px 12px; font-size:12.5px; color:var(--ink); background:var(--card); border:1px solid var(--line); border-radius:var(--r); outline:none;}
.field input:focus, .field select:focus{border-color:var(--steel); box-shadow:0 0 0 3px var(--steel-tint);}
.field .hint{font-size:10.5px; color:var(--ink-4); margin-top:5px;}

/* notas */
.note{font-size:11.5px; line-height:1.6; border-radius:var(--r); padding:12px 15px; border:1px solid; border-left-width:3px;}
.note.info{background:var(--steel-tint); border-color:#d5e6f2; border-left-color:var(--steel); color:#3c5c72;}
.note.warn{background:var(--amber-soft); border-color:#ecdcb2; border-left-color:#c99b2e; color:#7c5c17;}
.note.bad{background:var(--down-soft); border-color:#eccfc7; border-left-color:var(--down); color:#8f4a3d;}
.note b{font-weight:600; color:inherit;}
.credit-hero{position:relative; overflow:hidden; border-radius:10px; padding:14px 16px; margin-top:6px; display:flex; align-items:center; gap:14px;}
.credit-hero::before{content:''; position:absolute; top:-30px; right:-20px; width:120px; height:120px; border-radius:50%; pointer-events:none;}
.credit-hero.ok{background:linear-gradient(135deg,#eaf6f0, #ddefe6 70%); box-shadow:inset 0 0 0 1px #c9e4d7, 0 8px 20px -12px rgba(46,139,106,.35);}
.credit-hero.ok::before{background:radial-gradient(circle, rgba(46,139,106,.14), transparent 70%);}
.credit-hero.bad{background:linear-gradient(135deg,#f9ebe6, #f3ddd6 70%); box-shadow:inset 0 0 0 1px #eccec5, 0 8px 20px -12px rgba(180,91,82,.35);}
.credit-hero.bad::before{background:radial-gradient(circle, rgba(180,91,82,.14), transparent 70%);}
.credit-hero::after{content:''; position:absolute; top:0; bottom:0; left:-80%; width:50%; pointer-events:none;
  background:linear-gradient(105deg, transparent, rgba(255,255,255,.55), transparent); transform:skewX(-18deg); transition:left .6s ease;}
.credit-hero:hover::after{left:130%;}
.ch-ic{width:40px; height:40px; border-radius:11px; display:flex; align-items:center; justify-content:center; flex:none;}
.ch-ic svg{width:19px; height:19px; fill:#fff; stroke:none;}
.credit-hero.ok .ch-ic{background:linear-gradient(150deg,#3d9b78,#2e8b6a 60%,#227054); box-shadow:inset 0 1px 0 rgba(255,255,255,.25), 0 5px 12px -4px rgba(46,139,106,.55);}
.credit-hero.bad .ch-ic{background:linear-gradient(150deg,#c77465,#b45b52 60%,#96473f); box-shadow:inset 0 1px 0 rgba(255,255,255,.25), 0 5px 12px -4px rgba(180,91,82,.55);}
.ch-badge{position:absolute; top:10px; right:12px; font-size:8.5px; font-weight:700; text-transform:uppercase; letter-spacing:.07em; padding:3px 8px; border-radius:99px;}
.credit-hero.ok .ch-badge{background:#fff; color:var(--up); box-shadow:0 1px 3px rgba(46,139,106,.25);}
.credit-hero.bad .ch-badge{background:#fff; color:var(--down); box-shadow:0 1px 3px rgba(180,91,82,.25);}

/* tabelas */
table{width:100%; border-collapse:collapse;}
thead th{text-align:left; font-size:10px; color:var(--ink-3); text-transform:uppercase; letter-spacing:.07em; font-weight:600; padding:0 10px 9px 0; border-bottom:1px solid var(--line);}
thead th.r{text-align:right;}
tbody td{padding:11px 10px 11px 0; font-size:12.5px; border-bottom:1px solid var(--line-2); vertical-align:middle;}
tbody td.r{text-align:right; font-variant-numeric:tabular-nums;}
tbody tr:last-child td{border-bottom:none;}
.cname{font-weight:600; font-size:12.5px;}
.csub{font-size:10.5px; color:var(--ink-3); margin-top:1px; font-variant-numeric:tabular-nums;}

.chip{font-size:9.5px; font-weight:700; padding:3.5px 10px 3.5px 8px; border-radius:99px; text-transform:uppercase; letter-spacing:.05em; white-space:nowrap; display:inline-flex; align-items:center; gap:5px;}
.chip::before{content:''; width:5px; height:5px; border-radius:50%; background:currentColor; flex:none;}
.chip.ok{background:var(--up-soft); color:var(--up); border:1px solid #c9e4d7; box-shadow:inset 0 1px 0 rgba(255,255,255,.7);}
.chip.mid{background:var(--amber-soft); color:var(--amber); border:1px solid #e9d9ae; box-shadow:inset 0 1px 0 rgba(255,255,255,.7);}
.chip.bad{background:var(--down-soft); color:var(--down); border:1px solid #eccec5; box-shadow:inset 0 1px 0 rgba(255,255,255,.7);}
.chip.info{background:var(--steel-tint); color:var(--navy); border:1px solid #d2e3f0; box-shadow:inset 0 1px 0 rgba(255,255,255,.7);}
tbody tr{transition:background .12s;}
tbody tr:hover td{background:#fafcfd;}

/* kv rows */
.kv{display:flex; align-items:center; justify-content:space-between; padding:10px 0; font-size:12.5px; border-bottom:1px solid var(--line-2);}
.kv:last-child{border-bottom:none;}
.kv .k{color:var(--ink-2); display:flex; align-items:center; gap:9px;}
.kv .v{font-weight:700; font-variant-numeric:tabular-nums;}
.sq{width:9px; height:9px; border-radius:2px; display:inline-block; flex:none;}
.sq.ok{background:var(--navy);} .sq.mid{background:var(--steel);} .sq.bad{background:#d3a29a;}

/* ═══ BRIEFING — seção de escolha (efeitos exclusivos) ═══ */
.paths{display:grid; grid-template-columns:1fr 1fr; gap:16px; max-width:820px;}
@media(max-width:680px){ .paths{grid-template-columns:1fr;} }
@keyframes pathIn{from{opacity:0; transform:translateY(16px);} to{opacity:1; transform:none;}}
@keyframes popIn{0%{transform:scale(.3); opacity:0;} 60%{transform:scale(1.18);} 100%{transform:scale(1); opacity:1;}}
@keyframes halo{0%{box-shadow:0 0 0 0 rgba(79,157,201,.45);} 100%{box-shadow:0 0 0 12px rgba(79,157,201,0);}}
.path{animation:pathIn .45s cubic-bezier(.2,.7,.3,1) both;
  background:var(--card); border:1px solid var(--line); border-radius:14px; padding:20px; cursor:pointer; position:relative; overflow:hidden;
  box-shadow:0 1px 2px rgba(16,42,67,.04), 0 10px 24px -18px rgba(16,42,67,.14);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;}
.path:nth-child(2){animation-delay:.07s;}
.path:nth-child(3){animation-delay:.14s;}
.path:nth-child(4){animation-delay:.21s;}
.path:hover{transform:translateY(-4px); border-color:var(--steel-soft);
  box-shadow:0 2px 4px rgba(16,42,67,.05), 0 22px 44px -18px rgba(16,42,67,.25);}
.path::after{content:''; position:absolute; top:0; bottom:0; left:-90%; width:55%; pointer-events:none;
  background:linear-gradient(105deg, transparent, rgba(255,255,255,.6), transparent); transform:skewX(-18deg); transition:left .55s ease;}
.path:hover::after{left:135%;}
.path.sel{border-color:transparent; background:linear-gradient(155deg,#f4f9fc,#eaf2f8);
  box-shadow:0 0 0 2px var(--navy), 0 18px 40px -16px rgba(31,78,107,.35);}
.path.sel::before{content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--navy),var(--steel));}
.px-ic{width:42px; height:42px; border-radius:12px; display:flex; align-items:center; justify-content:center; margin-bottom:14px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 5px 12px -4px rgba(15,44,63,.4);
  transition:transform .2s ease;}
.path:hover .px-ic{transform:scale(1.1) rotate(-4deg);}
.px-ic svg{width:20px; height:20px; fill:#fff; stroke:none;}
.px-ic.i1{background:linear-gradient(150deg,#2a6089,var(--navy) 60%,#17405c);}
.px-ic.i2{background:linear-gradient(150deg,#63a9d1,#3d84ad 60%,#2f6c91);}
.px-ic.i3{background:linear-gradient(150deg,#c9a044,#a98420 60%,#8a6c15);}
.px-ic.i4{background:linear-gradient(150deg,#3d9b78,#2e8b6a 60%,#227054);}
.px-check{position:absolute; top:14px; right:14px; width:26px; height:26px; border-radius:50%; display:none; align-items:center; justify-content:center;
  background:linear-gradient(150deg,#2a6089,var(--navy)); animation:popIn .35s cubic-bezier(.2,.7,.3,1) both;}
.px-check::after{content:''; position:absolute; inset:0; border-radius:50%; animation:halo 1.8s ease-out infinite;}
.px-check svg{width:13px; height:13px; stroke:#fff; stroke-width:2.6; fill:none; stroke-linecap:round; stroke-linejoin:round;}
.path.sel .px-check{display:flex;}
.path-t{font-size:13.5px; font-weight:700; margin-bottom:4px; letter-spacing:-.005em; padding-right:26px;}
.path-d{font-size:11.5px; color:var(--ink-2); line-height:1.55;}
.px-foot{display:flex; align-items:center; gap:8px; margin-top:14px; padding-top:12px; border-top:1px dashed var(--line);}
.px-hint{font-size:10.5px; color:var(--ink-3); font-weight:500;}
.path.sel .px-hint{color:var(--navy); font-weight:600;}
.px-tag{font-size:8.5px; font-weight:700; text-transform:uppercase; letter-spacing:.07em; background:var(--amber-soft); color:var(--amber); border:1px solid #e9d9ae; border-radius:99px; padding:3px 9px;}

/* barras funil / rank */
.vtrack{height:7px; border-radius:99px; background:var(--line-2); overflow:hidden; box-shadow:inset 0 1px 2px rgba(16,42,67,.06);}
.vfill{height:100%; border-radius:99px; background:linear-gradient(90deg, #6faed4, var(--steel)); display:block;}
.vfill.top{background:linear-gradient(90deg, #2c608a, var(--navy));}
.vfill.warn{background:linear-gradient(90deg, #e2ca8e, #d0ac5c);}
.vfill.up{background:linear-gradient(90deg,#4aa886,var(--up));}

/* gráfico grande de evolução */
.bigchart .bc-wrap{position:relative; padding:8px 0 0 46px;}
.bc-legend{display:flex; gap:20px; align-items:center; padding:14px 0 0; margin-top:12px; border-top:1px solid var(--line-2); font-size:11px; color:var(--ink-3);}
.bc-legend .sw{width:16px; height:0; border-top:2.5px solid var(--navy); display:inline-block; margin-right:7px; vertical-align:3px; border-radius:2px;}
.bc-legend .sw.prev{border-top-style:dashed; border-top-color:var(--ink-4);}

/* avatar quadrado com iniciais */
.avx{width:30px; height:30px; border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:10.5px; font-weight:700; color:#fff; flex:none; box-shadow:inset 0 -6px 10px rgba(0,0,0,.12);}
.avx.a1{background:linear-gradient(145deg,#2c608a,var(--navy));}
.avx.a2{background:linear-gradient(145deg,#6faed4,var(--steel));}
.avx.a3{background:linear-gradient(145deg,#8ba7bc,#6d8ba3);}
.avx.aq{background:linear-gradient(145deg,#e2ca8e,#cda44e);}

/* listas compradas — linhas premium */
.lhead{display:grid; grid-template-columns:40px 1.25fr 64px 64px 1.15fr 108px; gap:14px; font-size:9.5px; font-weight:600; text-transform:uppercase; letter-spacing:.07em; color:var(--ink-4); padding:0 0 9px; border-bottom:1px solid var(--line);}
.lhead .r{text-align:right;}
.lrow{display:grid; grid-template-columns:40px 1.25fr 64px 64px 1.15fr 108px; gap:14px; align-items:center; padding:12px 0; border-bottom:1px solid var(--line-2); border-radius:6px; transition:background .12s;}
.lrow:hover{background:#fafcfd;}
.lrow:last-of-type{border-bottom:none;}
.lrow .r{text-align:right; font-variant-numeric:tabular-nums;}
.ltile{width:36px; height:36px; border-radius:10px; display:flex; align-items:center; justify-content:center; color:#fff; font-size:11px; font-weight:700; letter-spacing:.02em;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 4px 10px -4px rgba(15,44,63,.4);}
.ltile.t1{background:linear-gradient(150deg,#2a6089,var(--navy) 60%,#17405c);}
.ltile.t2{background:linear-gradient(150deg,#63a9d1,#3d84ad 60%,#2f6c91);}
.ltile.t3{background:linear-gradient(150deg,#8ba7bc,#6d8ba3 60%,#5b7991);}
.lprog{display:flex; align-items:center; gap:10px;}
.lprog .vtrack{flex:1;}
.lprog b{font-size:11px; font-variant-numeric:tabular-nums; color:var(--ink-2); width:32px; text-align:right;}
.ltotal{display:flex; align-items:center; justify-content:space-between; gap:12px; background:var(--bg); border:1px solid var(--line-2); border-radius:8px; margin-top:14px; padding:10px 15px; font-size:11px; color:var(--ink-3); flex-wrap:wrap;}
.ltotal b{color:var(--ink); font-weight:700; font-variant-numeric:tabular-nums;}

/* funil de KPIs — setas de fluxo entre células */
.flowkpis{overflow:visible;}
.flowkpis .kpi{overflow:visible;}
.flowkpis .kpi:nth-child(-n+3)::after{content:'→'; position:absolute; right:-13px; top:50%; transform:translateY(-50%); z-index:3;
  width:26px; height:26px; border-radius:50%; background:#fff; border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; color:var(--steel);
  box-shadow:0 2px 6px rgba(16,42,67,.1);}
@media(max-width:1240px){ .flowkpis .kpi::after{display:none !important;} }
.kpi-mini{display:flex; align-items:center; gap:9px; flex:1;}
.kpi-mini .vtrack{flex:1;}
.kpi-mini b{font-size:10.5px; font-variant-numeric:tabular-nums; color:var(--ink-2); flex:none;}
.frow-funnel{display:grid; grid-template-columns:110px 1fr 110px; gap:16px; align-items:center; padding:11px 0; border-bottom:1px solid var(--line-2);}
.frow-funnel:last-child{border-bottom:none;}
.ff-l{font-size:12px; color:var(--ink-2); font-weight:500;}
.ff-v{font-size:12.5px; font-weight:700; text-align:right; font-variant-numeric:tabular-nums;}
.ff-v small{font-weight:500; color:var(--ink-3); font-size:10.5px;}
.ftrack{height:14px; border-radius:99px; background:var(--line-2); overflow:hidden; box-shadow:inset 0 1px 2px rgba(16,42,67,.07);}
.ffill{height:100%; border-radius:99px; background:var(--bar); display:block;}
.ffill.n1{background:linear-gradient(90deg,#2c608a,var(--navy));}
.ffill.n2{background:linear-gradient(90deg,#6faed4,var(--steel));}
.ffill.n3{background:linear-gradient(90deg,#cde0ee,var(--steel-soft));}
.ffill.n4{background:linear-gradient(90deg,#e2ca8e,#cda44e);}
.fdrop{display:flex; align-items:center; gap:7px; padding:3px 0 3px 126px; font-size:10px; color:var(--ink-4); font-variant-numeric:tabular-nums;}
.fdrop b{color:var(--down); font-weight:700;}
.fdrop .arr{color:var(--ink-4); font-size:11px;}

/* lead table (distribuir) */
.filters{display:flex; gap:10px; flex-wrap:wrap; align-items:center;}
.filters select{padding:7px 11px; border:1px solid var(--line); border-radius:var(--r); background:var(--card); font-size:11.5px; color:var(--ink-2); outline:none;}
.lead-table td.chk, .lead-table th.chk{width:30px;}
.lead-table input[type=checkbox]{width:14px; height:14px; accent-color:var(--navy); cursor:pointer;}
.lead-table tbody tr.picked td{background:var(--steel-tint);}
.vsel{padding:6px 10px; border:1px solid var(--line); border-radius:var(--r); background:var(--card); font-size:11px; color:var(--ink-2); max-width:160px; outline:none; cursor:pointer;}
tr.assigned-done .vsel{border-color:var(--up); color:var(--up); background:var(--up-soft); font-weight:600;}
.list-note{font-size:10.5px; color:var(--ink-4); margin-top:12px;}
.selbar{position:sticky; bottom:14px; margin-top:16px; display:none; align-items:center; gap:14px; flex-wrap:wrap; background:var(--card); border:1px solid var(--line); border-radius:8px; padding:12px 18px; box-shadow:0 10px 30px rgba(15,44,63,.14);}
.selbar.show{display:flex;}
.selcount{font-weight:700; font-size:13px; font-variant-numeric:tabular-nums;}
.selcount small{display:block; font-size:10px; color:var(--ink-3); font-weight:500;}
.selbar .to{font-size:11.5px; color:var(--ink-3);}
.selbar select{padding:8px 12px; border:1px solid var(--line); border-radius:var(--r); background:var(--card); font-size:12px; outline:none;}
.selbar .sep{flex:1;}
.btn-clear{font-size:11.5px; color:var(--ink-3);}

/* kanban */
.kanban{display:grid; grid-template-columns:repeat(5,1fr); gap:14px;}
@media(max-width:1000px){ .kanban{grid-template-columns:repeat(2,1fr);} }
.kcol{background:transparent; border-top:3px solid var(--bar); padding-top:10px; min-height:190px;}
.kcol.c-new{border-top-color:var(--navy);} .kcol.c-cont{border-top-color:var(--steel);} .kcol.c-neg{border-top-color:var(--steel-soft);} .kcol.c-won{border-top-color:var(--up);} .kcol.c-lost{border-top-color:#d3a29a;}
.kcol-head{display:flex; align-items:center; justify-content:space-between; font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-2); padding:0 2px 10px;}
.kcol-head .cnt{font-size:10px; color:var(--ink-3); font-weight:600; font-variant-numeric:tabular-nums;}
.kcard{background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:11px 13px; margin-bottom:8px; cursor:pointer;}
.kcard:hover{border-color:var(--steel);}
.kcard-n{font-size:12.5px; font-weight:600;}
.kcard-m{font-size:10.5px; color:var(--ink-3); margin-top:2px; font-variant-numeric:tabular-nums;}
.kcard-b{display:flex; align-items:center; justify-content:space-between; margin-top:9px;}
.kcard-cred{font-size:11px; font-weight:700; color:var(--ink-2); font-variant-numeric:tabular-nums;}
.kcard-cred.bad{color:var(--down);}
.kcard-cred.ok{color:var(--up);}

/* card do lead */
.lead-big{background:var(--card); border:1px solid var(--line); border-radius:12px; overflow:hidden; margin-bottom:22px;
  box-shadow:0 1px 2px rgba(16,42,67,.04), 0 14px 34px -20px rgba(16,42,67,.18); transition:box-shadow .2s;}
.lead-big:hover{box-shadow:0 1px 2px rgba(16,42,67,.05), 0 20px 44px -20px rgba(16,42,67,.24);}
.lb-top{display:flex; align-items:center; justify-content:space-between; gap:14px; padding:18px 24px; border-bottom:1px solid var(--line); flex-wrap:wrap;
  background:linear-gradient(180deg,#fafcfd, #fff);}
.lb-id{display:flex; align-items:center; gap:14px;}
.lb-av{width:46px; height:46px; border-radius:12px; display:flex; align-items:center; justify-content:center; color:#fff; font-size:15px; font-weight:700; flex:none; letter-spacing:.02em;
  background:linear-gradient(150deg,#2a6089, var(--navy) 60%, #17405c);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 5px 12px -4px rgba(15,44,63,.45);}
.lb-av.bad{background:linear-gradient(150deg,#c77465, #b45b52 60%, #96473f);}
.lb-name{font-size:17px; font-weight:700; letter-spacing:-.015em;}
.lb-meta{font-size:11px; color:var(--ink-3); margin-top:4px; font-variant-numeric:tabular-nums; display:flex; align-items:center; gap:7px; flex-wrap:wrap;}
.meta-chip{background:var(--bg); border:1px solid var(--line); border-radius:5px; padding:1.5px 7px; font-size:10.5px; font-weight:500; color:var(--ink-2); display:inline-flex; align-items:center; gap:5px; cursor:pointer; transition:border-color .12s;}
.meta-chip:hover{border-color:var(--steel);}
.meta-chip svg{width:10px; height:10px; stroke:var(--ink-4); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}

/* restrições com badge de estado */
.ric{width:24px; height:24px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex:none;}
.ric svg{width:12px; height:12px; fill:none; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round;}
.ric.ok{background:linear-gradient(150deg,#3d9b78,#2e8b6a); box-shadow:0 3px 8px -3px rgba(46,139,106,.5);} .ric.ok svg{stroke:#fff;}
.ric.mid{background:linear-gradient(150deg,#c9a044,#a98420); box-shadow:0 3px 8px -3px rgba(169,132,32,.5);} .ric.mid svg{stroke:#fff;}
.ric.bad{background:linear-gradient(150deg,#c77465,#b0544a); box-shadow:0 3px 8px -3px rgba(180,91,82,.5);} .ric.bad svg{stroke:#fff;}

/* ação recomendada — barra com ícone */
.action-bar{display:flex; gap:13px; align-items:flex-start;}
.ab-ic{width:32px; height:32px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex:none; margin-top:-1px;}
.ab-ic svg{width:15px; height:15px; fill:none; stroke-width:2.1; stroke-linecap:round; stroke-linejoin:round;}
.note.info .ab-ic{background:linear-gradient(150deg,#63a9d1,#3d84ad); box-shadow:0 4px 10px -4px rgba(61,132,173,.6);} .note.info .ab-ic svg{stroke:#fff;}
.note.bad .ab-ic{background:linear-gradient(150deg,#c77465,#b0544a); box-shadow:0 4px 10px -4px rgba(180,91,82,.6);} .note.bad .ab-ic svg{stroke:#fff;}
.ab-txt{flex:1; padding-top:2px;}
.lb-body{display:grid; grid-template-columns:1fr 1fr; padding:0;}
@media(max-width:720px){ .lb-body{grid-template-columns:1fr;} }
.lb-col{padding:18px 24px;}
.lb-col + .lb-col{border-left:1px solid var(--line-2);}
@media(max-width:720px){ .lb-col + .lb-col{border-left:none; border-top:1px solid var(--line-2);} }
.lb-block-t{font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.09em; color:var(--ink-3); margin-bottom:12px;}
.metric{margin-bottom:14px;}
.metric .ml{font-size:11.5px; color:var(--ink-3);}
.metric .mv{font-size:20px; font-weight:700; letter-spacing:-.015em; margin-top:2px; font-variant-numeric:tabular-nums;}
.metric .mv small{font-size:11.5px; font-weight:500; color:var(--ink-3);}
.metric .mv.ok{color:var(--up);} .metric .mv.bad{color:var(--down);}
.metric .mn{font-size:10.5px; color:var(--ink-4); margin-top:2px;}
.restr{display:flex; align-items:center; justify-content:space-between; padding:8px 0; font-size:12px; border-bottom:1px solid var(--line-2); border-radius:6px; margin:0 -8px; padding-left:8px; padding-right:8px; transition:background .12s;}
.restr:hover{background:#fafcfd;}
.restr:last-child{border-bottom:none;}
.restr .rk{color:var(--ink-2); display:flex; align-items:center; gap:9px;}
.restr .rv{font-size:11px; font-weight:600; color:var(--ink-4); font-variant-numeric:tabular-nums;}
.restr .rv.strong{color:var(--ink);}
.lb-note{padding:0 24px 16px;}
.lb-actions{display:flex; gap:9px; flex-wrap:wrap; padding:14px 24px; border-top:1px solid var(--line-2); background:var(--bg);}

/* modal "alterar senha" da equipe de vendas (<dialog> nativo)
   margin:auto explícito porque o reset global `*{margin:0}` (linha 13)
   apaga o `dialog:modal{margin:auto}` do UA stylesheet que centraliza o
   modal na tela — sem isto ele cola no canto superior esquerdo. */
dialog.modal-senha{border:none; border-radius:14px; padding:0; width:340px; max-width:92vw; margin:auto; box-shadow:0 24px 64px -12px rgba(15,44,63,.35);}
dialog.modal-senha::backdrop{background:rgba(15,44,63,.45);}
dialog.modal-senha .modal-head{padding:16px 20px; border-bottom:1px solid var(--line); font-size:13.5px;}
dialog.modal-senha .modal-body{padding:18px 20px 6px;}
dialog.modal-senha .modal-body .field:last-of-type{margin-bottom:10px;}
dialog.modal-senha .modal-erro{padding:9px 11px; font-size:11.5px; margin-bottom:12px;}
dialog.modal-senha .modal-foot{padding:14px 20px; display:flex; justify-content:flex-end; gap:10px; border-top:1px solid var(--line);}

/* workspace de solicitação — etapas sequenciais (Carteira/Escopo/PH3A/
   Retorno/Publicação consolidadas numa página só, ver app/routes/solicitacao.py) */
.step-card.futuro{opacity:.55;}
.step-badge{width:24px; height:24px; border-radius:50%; display:inline-flex; align-items:center;
  justify-content:center; font-size:11px; font-weight:700; flex:none; margin-right:8px; color:#fff;}
.step-badge.done{background:var(--up);}
.step-badge.atual{background:var(--navy);}
.step-badge.futuro{background:var(--line-2); color:var(--ink-4);}
.step-badge.opcional{background:var(--steel);}
