:root{
  --navy:#0b2f67;
  --navy2:#153f78;
  --yellow:#ffb000;
  --bg:#f4f7fb;
  --card:#ffffff;
  --text:#172033;
  --muted:#6b7485;
  --line:#e3e8f0;
  --ok:#16794b;
  --warn:#a56200;
  --danger:#b83232;
  --shadow:0 10px 30px rgba(11,47,103,.08);
  --radius:20px;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.shell{max-width:900px;margin:0 auto;padding:18px 16px 104px}
.header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}
.brand-wrap{display:flex;align-items:center;gap:10px}
.logo{width:74px;height:50px;object-fit:contain;background:#07172f;border-radius:12px;padding:5px}
.brand-title{font-weight:800;color:var(--navy);font-size:20px}
.brand-sub{font-size:12px;color:var(--muted);margin-top:2px}
.icon-btn{border:1px solid var(--line);background:#fff;border-radius:12px;width:42px;height:42px;color:var(--navy)}
.hero{background:linear-gradient(135deg,#fff 0%,#f4f8fe 70%,#fff7db 100%);border:1px solid var(--line);border-radius:24px;padding:24px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.hero:after{content:"";position:absolute;width:120px;height:120px;background:rgba(255,176,0,.13);border-radius:50%;right:-35px;top:-35px}
.hero h1{margin:0 0 8px;color:var(--navy);font-size:28px;max-width:600px}
.hero p{margin:0 0 18px;color:var(--muted);line-height:1.45;max-width:620px}
.primary,.secondary,.soft,.danger{border:0;border-radius:14px;padding:13px 16px;font-weight:700}
.primary{background:var(--navy);color:#fff}
.primary:hover{background:var(--navy2)}
.secondary{background:var(--yellow);color:#15233d}
.soft{background:#eef4fb;color:var(--navy)}
.danger{background:#fff0f0;color:var(--danger)}
.wide{width:100%}
.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0 12px}
.section-title h2{font-size:17px;color:var(--navy);margin:0}
.link-btn{border:0;background:transparent;color:var(--navy);font-weight:700}
.metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.metric{background:#fff;border:1px solid var(--line);border-radius:18px;padding:15px;min-height:96px}
.metric strong{display:block;color:var(--navy);font-size:25px}
.metric span{display:block;color:var(--muted);font-size:12px;margin-top:8px;line-height:1.25}
.attention{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}
.att-item{display:flex;justify-content:space-between;gap:14px;padding:14px 15px;border-bottom:1px solid var(--line)}
.att-item:last-child{border-bottom:0}
.att-item strong{font-size:14px}
.att-item span{display:block;font-size:12px;color:var(--muted);margin-top:4px}
.badge{font-size:11px;font-weight:700;padding:5px 8px;border-radius:999px;white-space:nowrap;height:max-content}
.badge.warn{background:#fff2dc;color:var(--warn)}
.badge.ok{background:#e8f7ef;color:var(--ok)}
.badge.blue{background:#edf4ff;color:var(--navy)}
.bottom{position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--line);display:flex;justify-content:center;padding-bottom:env(safe-area-inset-bottom);z-index:30}
.bottom button{border:0;background:#fff;color:var(--muted);padding:10px 5px;width:20%;max-width:170px;font-size:18px}
.bottom button.active{color:var(--navy);font-weight:700}
.bottom span{display:block;font-size:10px;margin-top:4px}
.page-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:0 6px 18px rgba(11,47,103,.04)}
.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:14px}
.search{flex:1;border:1px solid var(--line);border-radius:13px;padding:12px 13px;background:#fff}
.client-list{display:flex;flex-direction:column;gap:10px}
.client{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;display:flex;justify-content:space-between;gap:12px}
.client strong{color:var(--navy)}
.client small{display:block;color:var(--muted);margin-top:4px}
.steps{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;margin:10px 0 18px}
.step-dot{height:7px;background:#dfe5ee;border-radius:999px}
.step-dot.on{background:var(--yellow)}
.step-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}
.step-header h1{font-size:23px;color:var(--navy);margin:0}
.step-header p{margin:5px 0 0;color:var(--muted);font-size:13px}
.step-num{font-size:12px;color:var(--muted);white-space:nowrap}
.form-grid{display:grid;grid-template-columns:1fr;gap:13px}
.field label{display:block;font-weight:700;color:#25354b;font-size:13px;margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:13px;padding:12px 13px;background:#fff;color:var(--text)}
.field textarea{min-height:88px;resize:vertical}
.hint{font-size:11px;color:var(--muted);margin-top:5px}
.req{color:var(--danger)}
.actions{display:flex;gap:10px;margin-top:18px}
.actions > *{flex:1}
.toggle-row{display:flex;gap:8px;flex-wrap:wrap}
.choice{border:1px solid var(--line);background:#fff;color:var(--navy);padding:10px 12px;border-radius:12px;font-weight:700}
.choice.active{background:#eef4ff;border-color:#90abd0;box-shadow:inset 0 0 0 1px #90abd0}
.months{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.consumption-summary{background:#f3f7fd;border:1px solid #d9e5f5;border-radius:17px;padding:16px;margin-top:14px}
.consumption-summary strong{font-size:25px;color:var(--navy)}
.kpi-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:14px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:15px;padding:13px}
.kpi b{display:block;color:var(--navy);font-size:20px}
.kpi span{font-size:11px;color:var(--muted)}
.orient-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.orientation{border:1px solid var(--line);border-radius:13px;background:#fff;padding:12px 6px;text-align:center;color:var(--navy);font-weight:800}
.orientation.active{background:#fff8df;border-color:#e9bd45;box-shadow:inset 0 0 0 1px #e9bd45}
.info{background:#fff9e8;border:1px solid #f2d47e;color:#6e5204;border-radius:14px;padding:12px;font-size:12px;line-height:1.4}
.result-box{background:linear-gradient(135deg,#0b2f67,#16457f);color:#fff;border-radius:20px;padding:18px;margin-top:16px}
.result-box h3{margin:0 0 12px;font-size:16px}
.result-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.result{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:12px}
.result b{display:block;font-size:21px}
.result span{font-size:11px;opacity:.82}
.muted{color:var(--muted)}
.hidden{display:none!important}
.toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);background:#172033;color:#fff;padding:11px 15px;border-radius:999px;font-size:12px;z-index:50;box-shadow:var(--shadow)}
@media(min-width:700px){
  .metrics{grid-template-columns:repeat(5,1fr)}
  .form-grid.two{grid-template-columns:1fr 1fr}
  .months{grid-template-columns:repeat(4,1fr)}
  .kpi-grid{grid-template-columns:repeat(4,1fr)}
}


.system-types{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.system-type{border:1px solid var(--line);background:#fff;border-radius:15px;padding:14px;text-align:left;color:var(--navy);font-weight:800}
.system-type small{display:block;color:var(--muted);font-weight:400;margin-top:5px}
.system-type.active{background:#eef4ff;border-color:#90abd0;box-shadow:inset 0 0 0 1px #90abd0}

.cost-table{width:100%;border-collapse:collapse;margin-top:8px}
.cost-table th,.cost-table td{padding:10px 8px;border-bottom:1px solid var(--line);text-align:left;font-size:13px}
.cost-table th{color:var(--navy);font-size:12px}
.cost-table td:last-child,.cost-table th:last-child{text-align:right}
.cost-total{display:flex;justify-content:space-between;align-items:center;padding:13px 0;font-weight:800}
.cost-total strong{font-size:22px;color:var(--navy)}
.quote-card{border:1px solid var(--line);border-radius:16px;padding:14px;background:#fff;margin-top:10px}
.quote-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.quote-head strong{color:var(--navy)}
.inline-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.private-box{background:#fff3f3;border:1px solid #f0c8c8;color:#7c2c2c;border-radius:14px;padding:12px;font-size:12px;line-height:1.4}
.proposal-preview{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden}
.proposal-banner{background:linear-gradient(135deg,#0b2f67,#16457f);color:#fff;padding:20px}
.proposal-banner h2{margin:0 0 5px}
.proposal-body{padding:18px}
.preview-highlight{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.preview-highlight .kpi{background:#f7f9fc}

.proposal-logo{width:150px;max-height:80px;object-fit:contain;object-position:left center;margin-bottom:12px}
.proposal-kicker{font-size:11px;letter-spacing:1.4px;font-weight:800;opacity:.78;margin-bottom:7px}
.customer-lines{border:1px solid var(--line);border-radius:16px;overflow:hidden}
.customer-lines>div{display:flex;justify-content:space-between;gap:16px;padding:12px 14px;border-bottom:1px solid var(--line)}
.customer-lines>div:last-child{border-bottom:0}
.customer-lines span{color:var(--muted);font-size:12px}
.customer-lines strong{text-align:right;color:var(--navy);font-size:13px}
.investment-card{margin:18px 0;background:linear-gradient(135deg,#f4c542,#ffd96b);padding:18px;border-radius:18px;color:#0b2f67}
.investment-card span{font-size:11px;font-weight:900;letter-spacing:1px}
.investment-card strong{display:block;font-size:29px;margin-top:3px}
.environment-line,.proposal-note{margin-top:12px;font-size:12px;color:var(--muted);line-height:1.45}
.proposal-footer{text-align:center;margin-top:24px;padding-top:18px;border-top:1px solid var(--line);color:var(--navy)}
.wide{width:100%;margin:6px 0}
.output-actions{margin-top:14px}
.modal{position:fixed;inset:0;background:rgba(4,20,43,.62);z-index:50;display:flex;align-items:center;justify-content:center;padding:18px}
.modal.hidden{display:none}
.modal-card{background:#fff;border-radius:20px;padding:16px;width:min(560px,100%);box-shadow:0 24px 80px rgba(0,0,0,.28)}
.modal-head{display:flex;justify-content:space-between;align-items:center}
.modal-head h3{margin:0;color:var(--navy)}
.modal-head button{border:0;background:transparent;font-size:28px;color:var(--muted)}
.summary-text{width:100%;min-height:300px;margin-top:12px;border:1px solid var(--line);border-radius:14px;padding:14px;font:inherit;line-height:1.5;resize:vertical}
@media(max-width:640px){
  .proposal-preview{border-radius:0;border-left:0;border-right:0}
  .proposal-banner{padding:22px 18px}
  .proposal-body{padding:16px}
  .preview-highlight{grid-template-columns:1fr 1fr}
  .customer-lines>div{display:block}
  .customer-lines strong{display:block;text-align:left;margin-top:4px}
  .investment-card strong{font-size:26px}
}
@media print{
  body *{visibility:hidden!important}
  #customerProposal,#customerProposal *{visibility:visible!important}
  #customerProposal{position:absolute;left:0;top:0;width:100%;border:0!important;box-shadow:none!important}
  .proposal-preview{border:0}
  .proposal-banner{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .investment-card{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* V4 - acabamento mobile/PWA */
@media(max-width:720px){
  body{background:#f3f6fa}
  .app{max-width:100%;padding-bottom:92px}
  .topbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-bottom:1px solid #e7ebf1}
  .page{padding:12px}
  .page-card{border-radius:18px;box-shadow:0 7px 22px rgba(11,47,103,.06)}
  .bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:30;border-radius:18px 18px 0 0;box-shadow:0 -8px 24px rgba(11,47,103,.10);padding-bottom:max(8px,env(safe-area-inset-bottom))}
  .actions{position:sticky;bottom:76px;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);padding-top:10px;z-index:12}
  .actions button{min-height:48px}
  input,select,textarea{font-size:16px!important}
  .system-types{grid-template-columns:1fr 1fr}
  .form-grid.two,.inline-grid{grid-template-columns:1fr}
  .preview-highlight{grid-template-columns:1fr 1fr}
}
@media(max-width:390px){
  .preview-highlight{grid-template-columns:1fr}
  .system-types{grid-template-columns:1fr}
}

.client-consumption-card{margin:14px 0;background:#eef4fb;border:1px solid #d9e4f1;border-radius:16px;padding:14px}
.client-consumption-card span{display:block;color:var(--muted);font-size:12px}
.client-consumption-card strong{display:block;color:var(--navy);font-size:22px;margin-top:3px}
.warranty-box{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff}
.warranty-box>div{display:flex;justify-content:space-between;gap:14px;padding:13px 14px;border-bottom:1px solid var(--line)}
.warranty-box>div:last-child{border-bottom:0}
.warranty-box span{color:var(--muted);font-size:12px}
.warranty-box strong{color:var(--navy);font-size:13px;text-align:right}
@media(max-width:640px){
  .warranty-box>div{display:block}
  .warranty-box strong{display:block;text-align:left;margin-top:4px}
}

.warranty-title{margin-top:24px!important}
.warranty-prominent{border:2px solid #f4c542!important;background:#fffdf5!important}
.warranty-prominent>div{padding:16px!important}
.warranty-prominent span{font-weight:800!important;letter-spacing:.4px;color:#6b7786!important}
.warranty-prominent strong{font-size:15px!important;color:#0b2f67!important}

.warranty-title{margin-top:24px!important}
.warranty-prominent{border:2px solid #f4c542!important;background:#fffdf5!important}
.warranty-prominent>div{padding:16px 14px!important}
.warranty-prominent span{font-weight:800!important;letter-spacing:.45px!important}
.warranty-prominent strong{font-size:15px!important}
@media print{
  .warranty-box,.warranty-box *{visibility:visible!important}
  .warranty-prominent{border:2px solid #f4c542!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

.equipment-type-card{border:2px solid #0b2f67!important;background:#f4f8ff!important}
.equipment-type-card span{font-weight:800!important;color:#6b7786!important}
.equipment-type-card strong{font-size:18px!important;color:#0b2f67!important}


/* V5.0 — propostas salvas e microinversor sem negrito */
.equipment-description{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.equipment-type-text{font-weight:400!important;color:#16304d!important}
.type-qty-line{display:flex;gap:8px;align-items:baseline}
.type-qty-line span{font-weight:400!important;text-transform:none!important}
.home-proposal-actions{display:grid;gap:10px}
.proposal-history-modal{max-width:680px;width:min(92vw,680px)}
.proposal-history-list{display:grid;gap:10px;max-height:60vh;overflow:auto;margin-top:14px}
.proposal-history-item{
  width:100%;display:flex;justify-content:space-between;gap:16px;align-items:center;
  text-align:left;border:1px solid #dce5ef;background:#fff;border-radius:16px;padding:15px 16px;
  cursor:pointer
}
.proposal-history-item:hover{border-color:#0b2f67}
.proposal-history-item div:first-child{display:grid;gap:4px}
.proposal-history-item div:first-child span{font-size:13px;color:#6b7786}
.proposal-history-status{font-size:12px;font-weight:700;color:#0b2f67;background:#f2f6fb;padding:7px 10px;border-radius:999px;white-space:nowrap}
.empty-history{display:grid;gap:6px;padding:20px;border:1px dashed #c9d4e2;border-radius:16px;color:#6b7786}
.empty-history b{color:#16304d}
@media(max-width:640px){
  .proposal-history-item{align-items:flex-start;flex-direction:column}
}

.equipment-description-inline span{font-weight:400!important;color:#16304d!important}
.equipment-description-inline strong{font-weight:700!important}

.environment-title{margin-top:28px!important;padding-top:18px;border-top:1px solid #dce5ef}
.environment-benefits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.environment-benefits .kpi{background:#f6f8fb;border:1px solid #dce5ef;border-radius:18px;padding:18px}
.environment-benefits .kpi b{display:block;color:#0b2f67;font-size:24px;margin-bottom:5px}
.environment-benefits .kpi span{color:#6b7786;font-size:13px}

.proposal-search-wrap{margin-top:14px}
.proposal-search{
  width:100%;box-sizing:border-box;border:1px solid #d4dfeb;border-radius:14px;
  padding:13px 14px;font-size:15px;outline:none;background:#fff;color:#16304d
}
.proposal-search:focus{border-color:#0b2f67;box-shadow:0 0 0 3px rgba(11,47,103,.08)}
.proposal-history-main{min-width:0}
.proposal-history-main b{white-space:normal}

/* V5.6 — os 6 riscos superiores agora são botões de navegação */
.clickable-steps .step-dot{
  appearance:none;
  -webkit-appearance:none;
  border:0;
  padding:0;
  cursor:pointer;
  position:relative;
}
.clickable-steps .step-dot::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:-12px;
  bottom:-12px;
}
.clickable-steps .step-dot:hover,
.clickable-steps .step-dot:focus-visible{
  transform:translateY(-1px);
  box-shadow:0 0 0 4px rgba(11,47,103,.10);
  outline:none;
}
.clickable-steps .step-dot.current{
  box-shadow:0 0 0 2px rgba(11,47,103,.12);
}

/* V5.7 — nomes das etapas também clicáveis */
.step-navigation{display:grid;gap:7px}
.step-name-row{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:5px;
}
.step-name{
  appearance:none;-webkit-appearance:none;border:0;background:transparent;
  padding:2px 1px;color:#7a8796;font-size:10px;line-height:1.15;
  text-align:center;cursor:pointer;white-space:normal;
}
.step-name.current{color:#0b2f67;font-weight:800}
.step-name:hover,.step-name:focus-visible{color:#0b2f67;outline:none}
@media(max-width:640px){
  .step-name{font-size:8px}
  .step-name-row{gap:2px}
}

/* V5.8 — catálogos rápidos de equipamentos */
.catalog-card{
  margin:0 0 14px;
  padding:14px;
  border:1px solid #dce5ef;
  border-radius:16px;
  background:#f8fafc;
}
.catalog-card .field{margin:0}
.catalog-card select{
  width:100%;
  box-sizing:border-box;
}

/* V5.9 — módulo de cadastros editáveis */
.catalog-tabs{
  display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:4px 0 18px;
}
.catalog-tabs button{
  border:1px solid #d7e0ea;background:#fff;color:#526174;border-radius:14px;
  padding:11px 8px;font-weight:700;cursor:pointer;
}
.catalog-tabs button.active{background:#0b2f67;color:#fff;border-color:#0b2f67}
.catalog-admin-list{display:grid;gap:10px}
.catalog-item{
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  border:1px solid #dce5ef;border-radius:16px;background:#fff;padding:14px;
}
.catalog-item.inactive{opacity:.55;background:#f5f6f8}
.catalog-item-main{display:grid;gap:4px;min-width:0}
.catalog-item-main b{color:#16304d}
.catalog-item-main span{font-size:12px;color:#7a8796}
.catalog-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.catalog-note{margin-top:16px}
.catalog-editor-fields{margin-top:16px}
.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
@media(max-width:640px){
  .catalog-item{align-items:flex-start;flex-direction:column}
  .catalog-actions{width:100%}
  .catalog-actions button{flex:1}
  .catalog-tabs button{font-size:12px;padding:10px 5px}
}

/* V5.10 — mais categorias no cadastro */
.catalog-tabs{grid-template-columns:repeat(3,1fr)}
@media(max-width:640px){
  .catalog-tabs{grid-template-columns:repeat(2,1fr)}
}

/* V5.11 */
#budgetDistributor,#budgetTeam{width:100%;box-sizing:border-box}

/* V5.12 — custos automáticos de orçamento */
.smart-cost-card{
  display:flex;justify-content:space-between;align-items:center;gap:14px;
  margin:14px 0 18px;padding:14px;border:1px solid #dce5ef;border-radius:16px;background:#f8fafc;
}
.smart-cost-card div{display:grid;gap:4px}
.smart-cost-card b{color:#16304d}
.smart-cost-card span{font-size:12px;color:#69798b}
.inline-action-field{display:flex;gap:8px;align-items:center}
.inline-action-field input{flex:1;min-width:0}
#budgetEngineer{width:100%;box-sizing:border-box}
@media(max-width:640px){
  .smart-cost-card{align-items:flex-start;flex-direction:column}
  .smart-cost-card button{width:100%}
  .inline-action-field{align-items:stretch;flex-direction:column}
}

/* V5.14 — tabela editável de projeto/homologação */
.project-rates-card{max-width:780px}
.project-rate-head,.project-rate-row{
  display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:center;
}
.project-rate-head{padding:0 4px 8px;font-size:12px;font-weight:700;color:#69798b}
.project-rate-row{padding:8px 0;border-top:1px solid #edf1f5}
.project-rate-row input{width:100%;box-sizing:border-box}
.danger-lite{
  border:1px solid #e6d8d8;background:#fff;color:#a04444;border-radius:10px;padding:10px 12px;cursor:pointer;
}
@media(max-width:640px){
  .project-rate-head{display:none}
  .project-rate-row{grid-template-columns:1fr 1fr}
  .project-rate-row .danger-lite{grid-column:1/-1}
}

/* V5.17 — mensagem de cotação ao distribuidor */
.quote-modal-card{max-width:760px}
.quote-message{
  width:100%;min-height:360px;resize:vertical;box-sizing:border-box;
  line-height:1.55;font-family:inherit;
}

.hsp-hint{margin-top:6px}

/* V5.19 — coordenadas do centro da cidade */
.city-hsp-card{
  display:flex;justify-content:space-between;gap:14px;align-items:center;
  margin:12px 0 18px;padding:14px;border:1px solid #dce5ef;border-radius:16px;background:#f8fafc;
}
.city-hsp-card>div{display:grid;gap:4px}
.city-hsp-card b{color:#16304d}
.city-hsp-card span{font-size:13px;color:#45586e}
.city-hsp-card small{font-size:12px;color:#6a798b;line-height:1.4}
@media(max-width:640px){
  .city-hsp-card{flex-direction:column;align-items:stretch}
  .city-hsp-card button{width:100%}
}

/* V5.20 — HSP obrigatória quando não obtida automaticamente */
.hsp-warning{
  margin-top:7px;
  padding:9px 11px;
  border:1px solid #ead8a4;
  border-radius:10px;
  background:#fff8e7;
  color:#745900;
  font-weight:600;
  line-height:1.4;
}

/* V5.21 — cidade cadastrada ou nova cidade + HSP abaixo do campo */
.city-hsp-status{
  margin-top:7px;
  line-height:1.4;
}
.new-city-box{
  display:grid;
  grid-template-columns:1fr 80px auto;
  gap:8px;
  margin-top:10px;
  align-items:center;
}
.new-city-box input{width:100%}
@media(max-width:640px){
  .new-city-box{grid-template-columns:1fr 75px}
  .new-city-box button{grid-column:1/-1;width:100%}
}

/* V5.22 — tentativa automática de HSP */
.hsp-lookup-btn{margin-top:8px}

/* V5.23 — múltiplas cotações de distribuidores */
.quote-title{display:flex;justify-content:space-between;align-items:center;gap:12px}
.quotes-list{display:grid;gap:12px;margin:12px 0 20px}
.quote-card{border:1px solid #dce5ef;border-radius:16px;padding:14px;background:#fff}
.quote-card.selected{border-width:2px;box-shadow:0 3px 12px rgba(20,45,75,.08)}
.quote-grid{display:grid;grid-template-columns:1.4fr 1fr .8fr;gap:10px}
.quote-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:10px}
.empty-mini{padding:14px;border:1px dashed #cbd6e2;border-radius:12px;color:#6b7888;text-align:center}
.danger-lite{color:#8a3030}
@media(max-width:700px){
 .quote-title{align-items:stretch;flex-direction:column}
 .quote-grid{grid-template-columns:1fr}
 .quote-actions{flex-direction:column}
 .quote-actions button{width:100%}
}

/* V5.26 — comparação detalhada de cotações */
.quote-card-head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px
}
.quote-card-head>div{display:flex;align-items:center;gap:8px}
.quote-selected-badge{
  font-size:11px;font-weight:700;padding:4px 8px;border-radius:999px;background:#eef6ff;color:#173e68
}
.quote-validity{
  font-size:11px;font-weight:700;padding:4px 8px;border-radius:999px;background:#fff8e7;color:#745900;border:1px solid #ead8a4
}
.quote-validity.expired{background:#fff0f0;color:#8a3030;border-color:#ecc7c7}
.quote-grid-extra{grid-template-columns:1.2fr 1fr 1fr 1fr;margin-top:8px}
.quote-summary{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.quote-summary span{font-size:12px;padding:6px 8px;border-radius:9px;background:#f6f8fb;color:#526174}
.quote-compare{
  display:flex;justify-content:space-between;gap:14px;align-items:center;
  margin:12px 0;padding:12px 14px;border:1px solid #dce5ef;border-radius:14px;background:#f8fafc
}
.quote-compare>div{display:grid;gap:3px}
.quote-compare span{font-size:12px;color:#6b7888}
.quote-compare-best{text-align:right}
@media(max-width:850px){
  .quote-grid-extra{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .quote-grid-extra{grid-template-columns:1fr}
  .quote-card-head,.quote-compare{align-items:flex-start;flex-direction:column}
  .quote-compare-best{text-align:left}
}

/* V5.27 — vários contatos por distribuidor */
.dist-contacts{grid-column:1/-1;margin-top:12px;padding-top:12px;border-top:1px solid #e4eaf1}
.dist-contacts-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}
.dist-contact-row{display:grid;grid-template-columns:1fr 1fr 1.2fr auto auto;gap:8px;align-items:center;margin-top:8px}
.contact-active{display:flex;align-items:center;gap:5px;font-size:12px;white-space:nowrap}
.quote-grid{grid-template-columns:1.2fr 1.1fr 1fr .8fr}
@media(max-width:900px){
 .dist-contact-row{grid-template-columns:1fr 1fr}
 .quote-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
 .dist-contacts-head{flex-direction:column;align-items:stretch}
 .dist-contact-row,.quote-grid{grid-template-columns:1fr}
}

/* V5.28 — distribuidor fácil de localizar */
.catalog-tabs .distributor-tab{font-weight:800;border-color:#d6b326}
.catalog-tabs .distributor-tab.active{box-shadow:0 0 0 2px rgba(214,179,38,.18)}
.dist-guide{display:grid;gap:6px;margin:4px 0 16px;padding:14px;border-radius:14px;background:#fffdf3;border:1px solid #e5d28c}
.dist-guide>b{color:#173e68}
.dist-guide span{font-size:13px;color:#566779}

/* V5.31 — negociação comercial */
.neg-card{margin-top:18px;padding:16px;border:1px solid #dce5ef;border-radius:18px;background:#fff}
.status-pill{font-size:12px;font-weight:800;padding:6px 10px;border-radius:999px;background:#eef4fb;color:#173e68}
.neg-status-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0 12px}
.neg-status-grid button{border:1px solid #dce5ef;background:#f8fafc;border-radius:12px;padding:10px 8px;font-weight:700;color:#4a5969}
.neg-status-grid button.active{background:#173e68;color:#fff;border-color:#173e68}
.neg-quick-actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 14px}
.neg-followup{margin-top:10px}
.inline-action{display:flex;gap:8px}.inline-action input{flex:1}
.timeline{margin-top:14px;padding-top:12px;border-top:1px solid #e4eaf1}
.timeline-row{display:grid;grid-template-columns:130px 1fr;gap:12px;padding:8px 0;border-bottom:1px solid #f0f3f6}
.timeline-row span{font-size:12px;color:#738092}.timeline-row div{font-size:13px;color:#334155}
@media(max-width:800px){.neg-status-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.neg-status-grid{grid-template-columns:1fr}.inline-action{flex-direction:column}.timeline-row{grid-template-columns:1fr;gap:3px}}

/* V5.33 — correções Resumo/Negociação */
.negotiation-modal-card{max-width:920px}

/* V5.34 — Pedido / Obra */
.order-modal-card{max-width:1000px}
.order-current{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;margin:8px 0 14px;border-radius:14px;background:#f6f9fc;border:1px solid #dce5ef}
.order-current span{font-size:12px;color:#68788a}.order-current b{color:#173e68}
.order-status-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}
.order-status-grid button{border:1px solid #dce5ef;background:#f8fafc;border-radius:11px;padding:9px 7px;font-size:12px;font-weight:700;color:#4a5969}
.order-status-grid button.active{background:#173e68;color:#fff;border-color:#173e68}
@media(max-width:800px){.order-status-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.order-status-grid{grid-template-columns:1fr}}

/* V5.37 — Prévia da Proposta Digital */
.digital-preview-card{width:min(1040px,96vw);max-height:94vh;display:flex;flex-direction:column}
.digital-preview-frame{background:#eef3f8;border:1px solid #dbe4ee;border-radius:16px;padding:12px;overflow:auto;flex:1;display:flex;justify-content:center;align-items:flex-start}
.digital-preview-frame img{width:min(100%,540px);height:auto;display:block;border-radius:14px;box-shadow:0 8px 30px rgba(19,52,84,.14);background:#fff}
.digital-preview-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:14px}
@media(max-width:600px){.digital-preview-card{width:98vw;max-height:96vh}.digital-preview-frame{padding:6px}.digital-preview-actions{display:grid;grid-template-columns:1fr 1fr}.digital-preview-actions button{width:100%}}

/* V5.38 — Pedido / Obra */
.order-modal-card{width:min(1080px,96vw);max-height:94vh;overflow:auto}
.order-current{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;margin:8px 0 14px;border-radius:14px;background:#f6f9fc;border:1px solid #dce5ef}
.order-current span{font-size:12px;color:#68788a}.order-current b{color:#173e68}
.order-status-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}
.order-status-grid button{border:1px solid #dce5ef;background:#f8fafc;border-radius:11px;padding:9px 7px;font-size:12px;font-weight:700;color:#4a5969}
.order-status-grid button.active{background:#173e68;color:#fff;border-color:#173e68}
.order-timeline{display:grid;gap:8px;margin-top:8px}.order-timeline>div{display:grid;grid-template-columns:160px 1fr;gap:10px;padding:10px 12px;background:#f8fafc;border:1px solid #e4ebf2;border-radius:12px}.order-timeline b{font-size:11px;color:#6c7b8b}.order-timeline span{font-size:13px}
@media(max-width:800px){.order-status-grid{grid-template-columns:1fr 1fr}.order-timeline>div{grid-template-columns:1fr}}
@media(max-width:520px){.order-status-grid{grid-template-columns:1fr}}

/* V5.40 — Lista de Obras */
.works-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0}.works-summary>div{background:#fff;border:1px solid #dfe7ef;border-radius:16px;padding:16px;display:grid;gap:4px}.works-summary b{font-size:25px;color:#123f73}.works-summary span{font-size:12px;color:#6b7988}.works-list{display:grid;gap:10px}.work-card{width:100%;border:1px solid #dfe7ef;background:#fff;border-radius:16px;padding:15px 16px;display:flex;justify-content:space-between;align-items:center;text-align:left}.work-card>div{display:grid;gap:5px}.work-card strong{color:#183f69}.work-card span{font-size:12px;color:#6d7a88}.work-card-right{text-align:right}.work-card-right b{font-size:12px;color:#173e68}.empty-card{background:#fff;border:1px dashed #cad7e4;border-radius:16px;padding:24px;display:grid;gap:6px;text-align:center;color:#627386}@media(max-width:600px){.works-summary{grid-template-columns:1fr}.work-card{align-items:flex-start}.work-card-right{max-width:48%}}

/* V5.41 */
.order-engineer-box{margin:16px 0;padding:15px;border:1px solid #dfe7ef;border-radius:16px;background:#f9fbfd}.order-engineer-box h4{margin:0 0 12px;color:#173e68}.doc-checks{display:grid;gap:7px;padding-top:6px}.doc-checks label{display:flex;align-items:center;gap:8px;font-size:13px}.doc-checks input{width:auto}

/* V5.42 — retorno da Obra para a proposta */
.order-head-actions{display:flex;align-items:center;gap:8px}
.order-head-actions .soft{font-size:12px;padding:8px 10px}
@media(max-width:600px){.order-head-actions .soft{font-size:11px;padding:7px 8px}}

/* V5.43 — Voltar da Negociação para a proposta */
.neg-head-actions{display:flex;align-items:center;gap:8px}
.neg-head-actions .soft{font-size:12px;padding:8px 10px}
@media(max-width:600px){.neg-head-actions .soft{font-size:11px;padding:7px 8px}}

/* V5.45 — Negociação destravada no celular */
.negotiation-modal-card{
  width:min(920px,96vw);
  max-height:94vh;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.negotiation-modal-card .modal-head{
  flex:0 0 auto;
  position:sticky;
  top:0;
  z-index:5;
  background:#fff;
  padding-bottom:10px;
  border-bottom:1px solid #e6edf4;
}
.negotiation-scroll-body{
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  padding-top:10px;
  padding-bottom:8px;
}
.negotiation-bottom-actions{
  display:flex;
  justify-content:flex-end;
  padding:18px 2px 4px;
  border-top:1px solid #e6edf4;
  margin-top:16px;
}
.negotiation-bottom-actions button{min-width:210px}
@media(max-width:600px){
  #negotiationModal{align-items:stretch;padding:8px}
  .negotiation-modal-card{
    width:100%;
    max-height:calc(100vh - 16px);
    border-radius:16px;
  }
  .negotiation-modal-card .modal-head{padding:4px 0 10px}
  .neg-head-actions .soft{display:inline-flex}
  .negotiation-bottom-actions{
    position:sticky;
    bottom:0;
    background:#fff;
    padding:12px 0 4px;
  }
  .negotiation-bottom-actions button{width:100%;min-width:0}
}

/* V5.57 — faixa azul: logo à esquerda; cliente e cidade à direita */
.proposal-banner.proposal-banner-split{display:grid;grid-template-columns:minmax(220px,38%) 1fr;align-items:center;gap:34px;min-height:250px}
.proposal-brand-side{display:flex;align-items:center;justify-content:center;min-width:0}
.proposal-logo.proposal-logo-large{width:min(310px,90%);max-height:205px;object-fit:contain;margin:0}
.proposal-client-side{min-width:0;text-align:left}
.proposal-client-side h2{margin:8px 0 6px;font-size:clamp(26px,4vw,40px)}
.proposal-client-side .proposal-kicker{margin:0}
@media(max-width:650px){
.proposal-banner.proposal-banner-split{grid-template-columns:38% 62%;gap:14px;min-height:190px;padding:22px 18px}
.proposal-logo.proposal-logo-large{width:100%;max-height:145px}
.proposal-client-side h2{font-size:clamp(20px,6vw,29px)}
.proposal-client-side .proposal-kicker{font-size:11px}
}

.order-final-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}

.att-button{width:100%;border:0;text-align:left;font:inherit;cursor:pointer}
.att-button:hover{filter:brightness(.985)}

.proposal-history-row{display:flex;align-items:stretch;gap:8px}
.proposal-history-open{flex:1;display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;background:transparent;text-align:left;padding:0;cursor:pointer;color:inherit;font:inherit}
.proposal-discard{border:1px solid #e2e6eb;background:#fff;border-radius:10px;padding:8px 11px;cursor:pointer;white-space:nowrap}
.proposal-discard:hover{background:#fff3f3}
@media(max-width:640px){
  .proposal-history-row{flex-direction:column}
  .proposal-discard{align-self:flex-end}
}

.attention-empty{padding:22px 20px;border:1px solid #e1e7ef;border-radius:18px;background:#fff;display:flex;flex-direction:column;gap:5px}
.attention-empty strong{color:#12396f}
.attention-empty span{color:#68778a;font-size:.95rem}




/* V5.101 — checkbox após o texto, alinhado na mesma coluna */
.service-picker{
  display:grid;
  gap:0;
}
.service-choice{
  display:grid;
  grid-template-columns:minmax(0,1fr) 22px;
  align-items:center;
  column-gap:12px;
  min-height:46px;
  padding:6px 0;
  cursor:pointer;
}
.service-choice span{
  min-width:0;
  line-height:1.35;
}
.service-choice input[type="checkbox"]{
  width:18px;
  height:18px;
  margin:0;
  justify-self:center;
}


/* V5.110 — Novos eletros em tabela compacta */
.future-table{
  width:100%;
  border:1px solid #dfe5ec;
  border-radius:12px;
  overflow:hidden;
  margin:10px 0 14px;
  background:#fff;
}
.future-table-head,
.future-table-row{
  display:grid;
  grid-template-columns:150px minmax(210px,1.35fr) minmax(250px,1.6fr) 105px 34px;
  gap:8px;
  align-items:center;
}
.future-table-head{
  padding:8px 10px;
  background:#eef4ea;
  border-bottom:1px solid #d5dfd0;
  font-size:11px;
  font-weight:800;
  color:#213547;
}
.future-table-row{
  padding:7px 10px;
  border-bottom:1px solid #edf0f3;
}
.future-table-row:last-child{border-bottom:0}
.future-table-row select,
.future-table-row input{
  width:100%;
  min-height:34px;
  padding:6px 7px;
  border:1px solid #ccd4dd;
  border-radius:7px;
  background:#fff;
  font-size:12px;
}
.future-inline-fields{
  display:flex;
  gap:6px;
  align-items:end;
  min-width:0;
}
.future-inline-fields > *{min-width:0;flex:1}
.future-inline-fields label{
  display:flex;
  flex-direction:column;
  gap:2px;
  font-size:9px;
  color:#6c7782;
}
.future-inline-fields label span{white-space:nowrap}
.future-consumption{
  text-align:center;
  white-space:nowrap;
}
.future-consumption b{
  display:block;
  font-size:16px;
  color:#17375e;
}
.future-consumption span{
  display:block;
  font-size:9px;
  color:#6f7882;
}
.future-remove{
  width:30px;
  height:30px;
  border:0;
  border-radius:50%;
  background:#f9e5e5;
  color:#9f2525;
  font-size:20px;
  line-height:1;
  cursor:pointer;
}
@media (max-width:760px){
  .future-table{overflow-x:auto}
  .future-table-head,.future-table-row{min-width:780px}
}

.future-empty-cell{font-size:12px;color:#7c8792;padding:6px 4px;}

/* V5.113 — consumo informado + novos eletros lado a lado */
.consumption-input-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:end}
.readonly-kwh{min-height:54px;border:1px solid #d9e1ea;border-radius:16px;background:#f6f9fc;padding:10px 16px;display:flex;align-items:baseline;gap:7px}
.readonly-kwh strong{font-size:20px;color:#0b3265}.readonly-kwh span{font-size:12px;color:#667382}
@media(max-width:680px){.consumption-input-pair{grid-template-columns:1fr 1fr;gap:8px}.readonly-kwh{padding:10px;}.readonly-kwh strong{font-size:18px}}

/* V5.116 — conferência rápida antes do dimensionamento */
.sizing-consumption-strip{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:8px;margin:16px 0 12px}
.sizing-consumption-strip>div{border:1px solid #dde4ec;border-radius:12px;background:#f7f9fb;padding:10px 12px;display:flex;flex-direction:column;gap:3px}
.sizing-consumption-strip span{font-size:11px;color:#697582}.sizing-consumption-strip b{font-size:16px;color:#153a67}
.sizing-consumption-strip .total{background:#eef4ea;border-color:#d5dfd0}.sizing-consumption-strip .total b{font-size:18px}
@media(max-width:680px){.sizing-consumption-strip{grid-template-columns:1fr 1fr}.sizing-consumption-strip .total{grid-column:1/-1}}

.history-consumption-pair{margin-top:12px}

/* V5.121 — pesquisa combinada de clientes */
.client-search-panel{background:#fff;border:1px solid #e1e6ec;border-radius:16px;padding:14px;margin-bottom:14px}
.client-search-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}
.client-search-title>div{display:flex;flex-direction:column;gap:2px}.client-search-title span{font-size:12px;color:#6b7682}
.client-filter-builder{display:grid;grid-template-columns:minmax(170px,.8fr) minmax(180px,1.4fr) auto;gap:10px;align-items:end;margin-top:10px}
.client-filter-builder .field{margin:0}.client-add-filter{height:42px;white-space:nowrap}
.client-active-filters{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin:12px 0 8px;min-height:30px}
.client-filter-chip{border:1px solid #ccd8e4;background:#f3f7fa;border-radius:999px;padding:7px 10px;color:#173d68;cursor:pointer;font:inherit;font-size:12px}
.client-filter-chip span{margin-left:5px;font-size:15px}
@media(max-width:680px){
  .client-filter-builder{grid-template-columns:1fr 1fr}
  .client-add-filter{grid-column:1/-1}
  .client-search-title{align-items:flex-start}
}

/* V5.123 — busca por chave em tempo real */
.client-filter-status{display:flex;justify-content:space-between;align-items:center;gap:12px}
.client-filter-status .client-active-filters{flex:1}
.client-search-count{white-space:nowrap;font-size:12px;color:#173d68}
@media(max-width:680px){
  .client-filter-status{align-items:flex-start;flex-direction:column;gap:2px}
}

/* V5.124 — busca confiável e abertura direta */
.client-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.client-open-btn{white-space:nowrap}
@media(max-width:680px){.client-actions{width:100%;justify-content:flex-end;margin-top:8px}}

/* V5.125 — busca de propostas dedicada */
.proposal-search-modal{max-width:980px}
.proposal-advanced-search{border:1px solid #e0e6ed;border-radius:14px;padding:14px;margin-bottom:14px;background:#fbfcfe}
.proposal-search-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;color:#0d3975}
.proposal-filter-status{display:flex;justify-content:space-between;align-items:center;gap:12px}
.proposal-filter-status .client-active-filters{flex:1}
#proposalSearchCount{white-space:nowrap;font-size:12px;color:#173d68}
.proposal-history-main span{line-height:1.45}
@media(max-width:680px){
  .proposal-filter-status{flex-direction:column;align-items:flex-start;gap:2px}
}

/* V5.129 — Rascunhos destacados visualmente */
.proposal-history-status.proposal-status-draft{background:#fee2e2!important;color:#b91c1c!important;border:1px solid #fca5a5!important;font-weight:800!important;}

/* V5.130 — todo o cartão do RASCUNHO destacado em vermelho */
.proposal-history-item.proposal-draft-row{
  border-color:#dc2626!important;
  background:#fff5f5!important;
}
.proposal-history-item.proposal-draft-row .proposal-history-open{
  background:#fff5f5!important;
}
.proposal-history-item.proposal-draft-row .proposal-history-main b{
  color:#b91c1c!important;
}
.proposal-history-item.proposal-draft-row .proposal-history-main span{
  color:#dc2626!important;
}

/* V6.0 — Cliente mestre + UCs */
#clientHistoryModal .works-summary{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
#clientHistoryModal .proposal-history-row > .proposal-history-main{
  flex:1;
  min-width:0;
}
@media(max-width:700px){
  #clientHistoryModal .works-summary{grid-template-columns:repeat(2,minmax(0,1fr));}
}

/* V6.1 — Dashboard e funil por período */
.dashboard-filter{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin:18px 0 8px;padding:12px 14px;background:#fff;border:1px solid #e5e7eb;border-radius:14px;
}
.dashboard-filter div{display:flex;flex-direction:column;gap:2px}
.dashboard-filter span{font-size:12px;color:#64748b}
.dashboard-filter select{max-width:190px}
.dashboard-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0 20px}
.dashboard-values article{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:5px}
.dashboard-values span{font-size:12px;color:#64748b}
.dashboard-values strong{font-size:18px;color:#0f2747}
@media(max-width:600px){
  .dashboard-filter{align-items:flex-start;flex-direction:column}
  .dashboard-filter select{width:100%;max-width:none}
  .dashboard-values{grid-template-columns:1fr}
}

/* V6.3 — edição independente de Cliente e UC */
.client-master-head-actions,.client-uc-actions{display:flex;align-items:center;gap:8px}
.client-uc-actions{flex-wrap:wrap;justify-content:flex-end}
@media(max-width:650px){
  .client-uc-actions{width:100%;justify-content:flex-start;margin-top:8px}
  .client-master-head-actions{align-items:flex-start}
}

/* V6.7 — prévia de importação histórica */
.migration-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}
.migration-stats article{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff;display:flex;flex-direction:column;gap:4px}
.migration-stats b{font-size:1.45rem}.migration-stats span{font-size:.82rem;color:var(--muted)}
.migration-table-wrap{overflow:auto;margin-top:14px;border:1px solid var(--line);border-radius:14px}
.migration-table{width:100%;border-collapse:collapse;min-width:850px;background:#fff}
.migration-table th,.migration-table td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:.84rem}
.migration-table th{font-size:.76rem;text-transform:uppercase;letter-spacing:.03em;background:#f7f8fa}
.migration-table td small{display:block;color:var(--muted);margin-top:3px}
.migration-badge{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:.75rem;font-weight:700}
.migration-badge.ready{background:#e9f8ef;color:#176b38}
.migration-badge.review{background:#fff5d9;color:#8a5b00}
.migration-badge.duplicate{background:#fdeaea;color:#9e2929}
@media(max-width:700px){.migration-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

button:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.25);}

.digital-mode .internal-only-card{display:none!important;}

/* V6.8.11 — navegação fixa durante a rolagem */
.header{
  position:sticky;
  top:0;
  z-index:60;
  background:rgba(244,247,251,.97);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  padding:8px 0;
  margin-top:-8px;
  box-shadow:0 1px 0 rgba(11,47,103,.06);
}
.proposal-nav-sticky{
  position:sticky;
  top:74px;
  z-index:55;
  background:rgba(244,247,251,.98);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  padding:8px 0 6px;
  margin-bottom:8px;
  box-shadow:0 8px 14px rgba(11,47,103,.04);
}
.proposal-nav-sticky .steps{margin-top:0}

@media(max-width:720px){
  .header{top:0;padding:6px 0}
  .proposal-nav-sticky{top:68px;padding-top:6px}
}

/* V6.8.12 — correção de sobreposição dos elementos sticky */
.header{
  z-index:100;
  background:#f3f6fa;
  isolation:isolate;
}
.proposal-nav-sticky{
  z-index:90;
  background:#f3f6fa;
  isolation:isolate;
  overflow:hidden;
}
.proposal-nav-sticky::before{
  content:"";
  position:absolute;
  inset:-20px 0 0 0;
  background:#f3f6fa;
  z-index:-1;
  pointer-events:none;
}
.proposal-nav-sticky .step-navigation,
.proposal-nav-sticky .step-header{
  position:relative;
  z-index:1;
}

/* V6.8.13 — sticky sem fresta + navegação sempre volta ao topo */
:root{--cim-sticky-header-height:60px}
.header{
  position:sticky!important;
  top:0!important;
  z-index:200!important;
  background:#f3f6fa!important;
  margin-bottom:0!important;
}
.proposal-nav-sticky{
  position:sticky!important;
  top:calc(var(--cim-sticky-header-height) - 1px)!important;
  z-index:190!important;
  background:#f3f6fa!important;
  margin-top:0!important;
  overflow:hidden!important;
  box-shadow:0 8px 14px rgba(11,47,103,.04);
}
/* cobre qualquer subpixel/fresta entre os dois sticky */
.proposal-nav-sticky::after{
  content:"";
  position:absolute;
  left:0;right:0;
  top:-4px;
  height:5px;
  background:#f3f6fa;
  z-index:5;
  pointer-events:none;
}
.proposal-nav-sticky .step-navigation,
.proposal-nav-sticky .step-header{
  position:relative;
  z-index:10;
}


/* V6.8.15 — modal da Proposta Digital sempre acima da navegação sticky */
.digital-preview-modal{
  z-index:1000!important;
  isolation:isolate;
}
.digital-preview-modal .digital-preview-card{
  position:relative;
  z-index:1001;
  max-height:calc(100vh - 36px);
  overflow:auto;
}
body.digital-preview-open .header,
body.digital-preview-open .proposal-nav-sticky,
body.digital-preview-open .bottom-nav{
  pointer-events:none!important;
}


/* V6.8.16 — navegação da proposta volta ao fluxo normal */
.header{
  position:static!important;
  top:auto!important;
}
.proposal-nav-sticky{
  position:static!important;
  top:auto!important;
  z-index:auto!important;
  overflow:visible!important;
  box-shadow:none!important;
}
.proposal-nav-sticky::before,
.proposal-nav-sticky::after{
  display:none!important;
  content:none!important;
}

.doc-placeholder-list{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.doc-placeholder-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #dfe5ec;border-radius:12px;background:#fff}
.doc-placeholder-item>div{min-width:0}
.doc-placeholder-item b{overflow-wrap:anywhere}
@media(max-width:640px){.doc-placeholder-item{align-items:flex-start;flex-direction:column}.doc-placeholder-item button{width:100%}}

.cleaning-services{display:flex;flex-direction:column;gap:8px;margin:12px 0}
.cleaning-service-row{display:grid;grid-template-columns:minmax(0,1fr) 170px;gap:12px;align-items:center;padding:10px 12px;border:1px solid #dfe5ec;border-radius:12px;background:#fff}
.cleaning-service-row input[type=number]{width:100%}
.cleaning-check{display:flex;align-items:center;gap:8px;font-weight:600}
.cleaning-check input[type=checkbox]{width:auto}
.cleaning-check input:not([type=checkbox]){margin-left:8px;flex:1}
.cleaning-travel{background:#f8fafc}
.cleaning-table{width:100%;border-collapse:collapse;margin:12px 0 20px}
.cleaning-table th,.cleaning-table td{padding:10px;border-bottom:1px solid #dfe5ec;text-align:left}
.cleaning-table th:last-child,.cleaning-table td:last-child{text-align:right}
.cleaning-print-sheet{background:#fff}
@media(max-width:640px){.cleaning-service-row{grid-template-columns:1fr}.cleaning-check{align-items:flex-start;flex-wrap:wrap}.cleaning-check input:not([type=checkbox]){margin-left:0;flex-basis:100%}}
@media print{body *{visibility:hidden!important}.cleaning-print-sheet,.cleaning-print-sheet *{visibility:visible!important}.cleaning-print-sheet{position:absolute;left:0;top:0;width:100%;padding:0}.bottom,.modal-head,.modal-actions{display:none!important}}

#cleaningPrintModal{align-items:flex-start;overflow-y:auto;padding:18px 0}
#cleaningPrintModal .modal-card{max-height:none;overflow:visible;margin:0 auto 24px}
#cleaningPrintModal .cleaning-print-sheet{max-height:none;overflow:visible}
.client-summary-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:8px}
.client-summary-card>div{padding:10px 12px;border:1px solid #dfe5ec;border-radius:12px;background:#fff}
.client-summary-card span{display:block;font-size:.78rem;color:#64748b;margin-bottom:3px}
.client-summary-card strong{display:block;overflow-wrap:anywhere}
.client-summary-address{grid-column:1/-1}
@media(max-width:640px){.client-summary-card{grid-template-columns:1fr}.client-summary-address{grid-column:auto}}


/* V6.8.30 - seletor de cliente da limpeza com rolagem independente */
#cleaningClientPickerModal{
  align-items:flex-start;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding-top:18px;
  padding-bottom:18px;
}
#cleaningClientPickerModal .modal-card{
  max-height:calc(100dvh - 36px);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  margin:auto;
}
#cleaningClientPickerModal .modal-head,
#cleaningClientPickerModal .toolbar{
  flex:0 0 auto;
  background:#fff;
  z-index:2;
}
#cleaningClientPickerModal .toolbar{
  margin-top:12px;
  padding-bottom:8px;
}
#cleaningClientPickerList{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  padding-right:4px;
  padding-bottom:10px;
}
@media(max-width:640px){
  #cleaningClientPickerModal{padding:8px}
  #cleaningClientPickerModal .modal-card{max-height:calc(100dvh - 16px);width:100%}
}


/* V6.8.34 — proporções da proposta de limpeza baseadas na referência visual enviada */
#cleaningPrintModal .cleaning-reference-card{
  width:min(676px,100%);
  margin:0 auto;
  border-radius:18px;
  overflow:hidden;
}
#cleaningPrintModal .cleaning-reference-banner{
  width:calc(100% - 56px);
  margin:24px 28px 0;
  min-height:178px;
  padding:24px 28px;
  border-radius:20px;
  display:grid;
  grid-template-columns:36% 64%;
  gap:0;
  align-items:center;
  box-sizing:border-box;
}
#cleaningPrintModal .cleaning-reference-banner .proposal-brand-side{
  height:132px;
  padding-right:24px;
  border-right:1px solid rgba(255,255,255,.22);
  display:flex;
  align-items:center;
  justify-content:center;
}
#cleaningPrintModal .cleaning-reference-banner .proposal-logo.proposal-logo-large{
  width:146px;
  max-width:90%;
  max-height:109px;
  margin:0;
  object-fit:contain;
}
#cleaningPrintModal .cleaning-reference-banner .proposal-client-side{
  padding-left:30px;
  text-align:left;
}
#cleaningPrintModal .cleaning-reference-banner .proposal-kicker{
  font-size:13px;
  line-height:1.15;
  letter-spacing:0;
  font-weight:800;
  margin:0 0 12px;
  opacity:.86;
}
#cleaningPrintModal .cleaning-reference-banner .proposal-client-side h2{
  font-size:23px !important;
  line-height:1.08 !important;
  font-weight:800 !important;
  letter-spacing:0 !important;
  margin:0 0 12px !important;
  max-width:310px;
}
#cleaningPrintModal .cleaning-reference-banner .proposal-client-side>div:last-child{
  font-size:15px;
  line-height:1.2;
}
@media(max-width:640px){
  #cleaningPrintModal .cleaning-reference-card{width:100%}
  #cleaningPrintModal .cleaning-reference-banner{
    width:calc(100% - 24px);
    margin:12px 12px 0;
    min-height:150px;
    padding:18px 16px;
    border-radius:16px;
    grid-template-columns:35% 65%;
  }
  #cleaningPrintModal .cleaning-reference-banner .proposal-brand-side{
    height:110px;
    padding-right:14px;
  }
  #cleaningPrintModal .cleaning-reference-banner .proposal-logo.proposal-logo-large{
    width:114px;
    max-height:86px;
  }
  #cleaningPrintModal .cleaning-reference-banner .proposal-client-side{
    padding-left:18px;
  }
  #cleaningPrintModal .cleaning-reference-banner .proposal-kicker{
    font-size:10px;
    margin-bottom:8px;
  }
  #cleaningPrintModal .cleaning-reference-banner .proposal-client-side h2{
    font-size:18px !important;
    margin-bottom:8px !important;
  }
  #cleaningPrintModal .cleaning-reference-banner .proposal-client-side>div:last-child{
    font-size:12px;
  }
}
@media print{
  .cleaning-reference-card{
    width:676px !important;
    margin:0 auto !important;
  }
  .cleaning-reference-banner{
    width:620px !important;
    margin:24px 28px 0 !important;
    min-height:178px !important;
    padding:24px 28px !important;
    grid-template-columns:36% 64% !important;
  }
}

.doc-file-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:640px){.doc-placeholder-item{align-items:flex-start}.doc-file-actions{width:100%;justify-content:flex-start}.doc-file-actions button{flex:1 1 auto}}

.success-box{padding:12px;border-radius:12px;background:#eefbf2;border:1px solid #b9e7c6;margin-bottom:12px}
.cloud-floating-btn{position:fixed;right:18px;bottom:82px;z-index:80;width:46px;height:46px;border-radius:50%;border:1px solid #dbe4ee;background:white;box-shadow:0 8px 24px rgba(15,23,42,.18);font-size:20px}

.header-actions{display:flex;align-items:center;gap:8px}
.pwa-install-btn{border:1px solid var(--line);background:#fff;border-radius:12px;height:42px;padding:0 12px;color:var(--navy);font-weight:800;display:flex;align-items:center;gap:6px}
.pwa-install-btn:hover{background:#eef4fb}
@media(max-width:520px){
  .pwa-install-btn span{display:none}
  .pwa-install-btn{width:42px;padding:0;justify-content:center}
  .brand-sub{max-width:155px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}

/* V7.0.36 — validação de ficha técnica antes do envio à engenharia */
.tech-check-card{margin-top:12px;padding:12px;border:1px solid #d7dde3;border-radius:12px;background:#fff}.tech-check-card.has-pending{border-style:dashed}.tech-check-rows{display:flex;gap:12px;flex-wrap:wrap;margin:7px 0}.tech-status{display:inline-block;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:700;border:1px solid currentColor}.tech-status-reviewed,.tech-status-source{opacity:.9}.tech-status-pending,.tech-status-missing{font-weight:800}.tech-research-list{display:grid;gap:10px;margin-top:12px}.tech-research-item{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px;border:1px solid #d7dde3;border-radius:12px}.tech-research-item .soft{flex:0 0 auto}@media(max-width:640px){.tech-research-item{align-items:stretch;flex-direction:column}.tech-research-item .soft{width:100%}}

/* V7.0.37 — validação de ficha técnica pendente */
/* V7.0.41 — modal de ficha técnica rolável e sempre acessível */
#technicalResearchModal{
  align-items:flex-start;
  justify-content:center;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:12px 18px;
}
#technicalResearchModal .tech-validate-modal{
  max-width:860px;
  width:min(860px,100%);
  max-height:calc(100dvh - 24px);
  overflow-y:auto;
  overflow-x:hidden;
  margin:auto;
  scrollbar-gutter:stable;
  position:relative;
}
#technicalResearchModal .modal-head{
  position:sticky;
  top:-16px;
  z-index:4;
  margin:-16px -16px 10px;
  padding:14px 16px 10px;
  background:#fff;
  border-bottom:1px solid var(--line);
}
#technicalResearchModal .modal-actions{
  position:sticky;
  bottom:-16px;
  z-index:4;
  margin:14px -16px -16px;
  padding:10px 16px 14px;
  background:#fff;
  border-top:1px solid var(--line);
}
.tech-validate-item{display:block}.tech-validate-actions{margin:10px 0}.tech-source-label,.tech-validate-field{display:flex;flex-direction:column;gap:5px;margin-top:10px;font-size:.9rem}.tech-source-label input,.tech-validate-field input{width:100%;box-sizing:border-box}.tech-validate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;margin-top:8px}.tech-confirm{display:block;margin:14px 0;line-height:1.4}.tech-confirm input{width:auto;margin-right:7px}
@media(max-width:640px){
  #technicalResearchModal{padding:0;}
  #technicalResearchModal .tech-validate-modal{width:100%;max-height:100dvh;border-radius:0;margin:0;}
  .tech-validate-grid{grid-template-columns:1fr}
}

.tech-validate-section{grid-column:1/-1;margin-top:14px;padding:7px 9px;border-radius:8px;background:rgba(0,0,0,.045);font-weight:700;font-size:.78rem;letter-spacing:.04em}.tech-validate-section:first-child{margin-top:2px}


/* V7.0.57 — Apresentação ao cliente + Galeria CIM SOLAR */
.presentation-modal-card{max-width:860px;max-height:92vh;overflow:auto}
.presentation-message-toggle{display:flex;gap:12px;align-items:flex-start;padding:14px;border:1px solid #dfe5ec;border-radius:14px;background:#f8fafc;margin:10px 0 14px}
.presentation-message-toggle input{margin-top:4px;transform:scale(1.15)}
.presentation-message-toggle span{display:flex;flex-direction:column;gap:3px}
.presentation-message-toggle small{color:#6b7786}
.presentation-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0 10px}
.presentation-media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:12px}
.presentation-media-card{border:1px solid #dde4ec;border-radius:16px;overflow:hidden;background:#fff}
.presentation-media-preview{height:145px;background:#eef2f6;display:flex;align-items:center;justify-content:center;position:relative;color:#6b7786;font-weight:800;font-size:13px}
.presentation-media-preview img,.presentation-media-preview video{width:100%;height:100%;object-fit:cover;display:block}
.presentation-video-badge{position:absolute;right:8px;bottom:8px;background:rgba(0,0,0,.68);color:#fff;padding:5px 8px;border-radius:10px;font-size:11px}
.presentation-media-body{display:flex;flex-direction:column;gap:6px;padding:11px}
.presentation-media-body small{color:#6b7786}
.presentation-check{display:flex;gap:7px;align-items:center;margin-top:4px;font-size:13px}
.presentation-delete{margin-top:5px}
.presentation-empty{padding:24px;text-align:center;background:#f8fafc;border:1px dashed #cbd5df;border-radius:14px;color:#617083;grid-column:1/-1}
.presentation-gallery-add{padding:14px;background:#f8fafc;border:1px solid #dde4ec;border-radius:14px;margin-bottom:16px}
@media(max-width:640px){
  .presentation-section-head{align-items:flex-start;flex-direction:column}
  .presentation-media-grid{grid-template-columns:1fr 1fr}
  .presentation-media-preview{height:125px}
}


/* V7.0.58 — ordem de envio da apresentação */
.presentation-send-order{display:flex;flex-direction:column;gap:10px;margin:18px 0}
.presentation-send-step{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid #dfe5ec;border-radius:12px;background:#f8fafc}
.presentation-send-step b{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e5eaf0}
.presentation-send-step span{flex:1}
.presentation-send-step.done strong{font-size:20px}
