/* =====================================================================
   Elétrica Avançada – páginas de ferramentas (calculadoras, simulador,
   etiquetas e checklist). Usa as variáveis de cor de style.css.
   ===================================================================== */

[hidden]{display:none!important}

/* ---------------------------------------------------- cabeçalho da página */
.tool-hero{background:var(--soft);border-bottom:1px solid var(--line);padding-block:clamp(26px,4vw,48px)}
.crumbs{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;font-size:14px;color:var(--muted);margin-bottom:14px}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--primary);text-decoration:underline}
.crumbs .i{width:14px;height:14px;transform:rotate(-90deg)}
.tool-hero h1{font-size:clamp(38px,5.2vw,64px);line-height:.98;letter-spacing:-.012em;margin-bottom:14px}
.tool-hero .lead{margin-bottom:18px;max-width:64ch}
.badges{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.badges li{display:inline-flex;align-items:center;gap:7px;padding:5px 12px;border:1px solid var(--line-2);background:#fff;border-radius:99px;font-size:13.5px;font-weight:600;color:var(--ink-2)}
.badges .i{width:15px;height:15px;color:var(--green)}

.tool-main{padding-block:clamp(24px,3.5vw,48px)}
.tool-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:24px;align-items:start}
.tool-col{display:grid;gap:20px;min-width:0}
.sticky-col{position:sticky;top:calc(env(safe-area-inset-top,0px) + 84px)}

/* ------------------------------------------------------------- painéis */
.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:clamp(18px,2.4vw,26px);box-shadow:var(--shadow);min-width:0}
.panel--soft{background:var(--soft);box-shadow:none}
.panel-t{font:700 25px/1.1 var(--f-display);margin:0 0 16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.panel-t .i{color:var(--primary);width:22px;height:22px}
.panel-t .step{flex:none;width:28px;height:28px;border-radius:50%;background:var(--primary);color:#fff;display:grid;place-items:center;font:700 16px/1 var(--f-display)}
.panel-t .grow{flex:1}
.panel-sub{color:var(--muted);font-size:14.5px;margin:-8px 0 16px}
.hr{height:1px;background:var(--line);border:0;margin:18px 0}
.mt-s{margin-top:10px}.mt-m{margin-top:16px}.mt-l{margin-top:24px}.mb-0{margin-bottom:0}
.panel-t--sm{font-size:21px}
.h-faq{font-size:26px;margin:28px 0 12px}
.list-sm{margin:0 0 14px;padding-left:20px;display:grid;gap:4px;color:var(--ink-2);font-size:14.5px}
.seg small{font-weight:500;font-size:12px;opacity:.8}

/* ------------------------------------------------------------ formulário */
.fgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}
.fgrid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.fgrid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.fgrid .full{grid-column:1/-1}
.f{display:grid;gap:6px;align-content:start;font-weight:600;font-size:14.5px;color:var(--ink);min-width:0}
.f>span:first-child{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.f input,.f select,.f textarea{width:100%;min-height:46px;padding:0 12px;border:1px solid var(--line-2);border-radius:8px;font:400 16px var(--f-body);color:var(--ink);background:#fff;min-width:0}
.f select{padding-right:8px}
.f textarea{padding:10px 12px;min-height:88px;resize:vertical;line-height:1.5}
.f input[type=checkbox]{width:20px;height:20px;min-height:0;accent-color:var(--primary)}
.f input:focus,.f select:focus,.f textarea:focus{outline:3px solid rgba(29,78,216,.25);border-color:var(--primary)}
.f input[type=range]{padding:0;min-height:32px;accent-color:var(--primary)}
.f .hint{font-size:13px;line-height:1.4}
.f-inline{display:flex;align-items:center;gap:10px;font-weight:600;font-size:14.5px;cursor:pointer}
.f-inline input{width:20px;height:20px;accent-color:var(--primary)}
.uw{position:relative;display:block}
.uw input{padding-right:54px}
.uw .u{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:14px;font-weight:600;pointer-events:none}

.seg{display:flex;flex-wrap:wrap;gap:4px;padding:4px;background:var(--soft);border:1px solid var(--line);border-radius:10px}
.seg label{position:relative;flex:1 1 auto;display:block}
.seg input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.seg span{display:flex;flex-direction:column;gap:2px;align-items:center;justify-content:center;text-align:center;min-height:40px;padding:0 12px;border-radius:7px;font:600 14.5px/1.15 var(--f-body);color:var(--ink-2);pointer-events:none}
.seg input:checked+span{background:var(--primary);color:#fff}
.seg input:focus-visible+span{outline:3px solid rgba(29,78,216,.45);outline-offset:1px}
.panel--soft .seg{background:#fff}

.chips{display:flex;flex-wrap:wrap;gap:6px}
.qb{min-height:34px;padding:0 12px;border:1px solid var(--line-2);border-radius:99px;background:#fff;color:var(--ink);font:600 13.5px/1 var(--f-body);cursor:pointer}
.qb:hover{border-color:var(--ink);background:var(--soft)}
.qb[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:#fff}
.actions{display:flex;flex-wrap:wrap;gap:10px}
.actions .btn{flex:0 1 auto}
.btn .i{width:18px;height:18px}
.btn-ghost{background:transparent;color:var(--primary);border-color:transparent;padding:0 12px}
.btn-ghost:hover{background:var(--primary-soft)}
.btn-wa{background:#128C4A;color:#fff}
.btn-wa:hover{background:#0E7139}
.btn-icon{width:40px;min-height:40px;padding:0;border-radius:8px;border:1px solid var(--line-2);background:#fff;color:var(--ink-2);display:inline-grid;place-items:center;cursor:pointer}
.btn-icon:hover{border-color:var(--ink);color:var(--ink);background:var(--soft)}
.btn-icon:disabled{opacity:.4;cursor:not-allowed}
.btn-icon--danger:hover{border-color:var(--red);color:var(--red);background:var(--red-soft)}
.btn-icon .i{width:18px;height:18px}
.err-msg{color:var(--red);font-size:14px;font-weight:600;margin:0}

/* -------------------------------------------------------------- resultados */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.kpi{background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:14px 16px;min-width:0}
.kpi small{display:block;color:var(--muted);font-size:13px;line-height:1.3;font-weight:500}
.kpi b{display:block;font:700 30px/1.1 var(--f-display);margin-top:4px;overflow-wrap:anywhere}
.kpi b em{font:600 14.5px var(--f-body);color:var(--muted);margin-left:4px;font-style:normal}
.kpi--main{grid-column:1/-1;background:var(--primary-soft);border-color:#D6E2FB}
.kpi--main b{font-size:clamp(46px,7vw,64px);line-height:1}
.kpi.ok{background:#F0FDF4;border-color:#BBF7D0}.kpi.ok b{color:#166534}
.kpi.caut{background:#FFFBEB;border-color:#FDE68A}.kpi.caut b{color:#92400E}
.kpi.bad{background:var(--red-soft);border-color:#FECACA}.kpi.bad b{color:var(--red)}

.verdict{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:12px;border:1px solid var(--line);background:var(--soft);font-size:15px;line-height:1.5}
.verdict .i{width:24px;height:24px;flex:none;margin-top:1px}
.verdict b{display:block;font-size:16px}
.verdict.ok{background:#F0FDF4;border-color:#BBF7D0;color:#14532D}.verdict.ok .i{color:#15803D}
.verdict.caut{background:#FFFBEB;border-color:#FDE68A;color:#78350F}.verdict.caut .i{color:#B45309}
.verdict.bad{background:var(--red-soft);border-color:#FECACA;color:#7F1D1D}.verdict.bad .i{color:var(--red)}
.verdict.info{background:var(--primary-soft);border-color:#D6E2FB;color:#1E3A8A}.verdict.info .i{color:var(--primary)}
.verdicts{display:grid;gap:10px}
.empty{color:var(--muted);text-align:center;padding:28px 12px;border:1px dashed var(--line-2);border-radius:12px;font-size:15px}

.gauge{margin:6px 0 4px}
.gauge-track{position:relative;height:16px;border-radius:99px;background:linear-gradient(90deg,#22C55E 0%,#86D64A 30%,#F5B301 55%,#F97316 72%,#DC2626 100%);box-shadow:inset 0 0 0 1px rgba(15,23,42,.12)}
.gauge-pin{position:absolute;top:-6px;width:4px;height:28px;margin-left:-2px;background:var(--ink);border-radius:2px;transition:left .35s cubic-bezier(.3,1.3,.5,1)}
.gauge-pin::after{content:"";position:absolute;left:50%;top:-5px;width:12px;height:12px;margin-left:-6px;background:var(--ink);border-radius:50%}
.gauge-lim{position:absolute;top:-4px;bottom:-4px;width:0;border-left:2px dashed var(--ink)}
.gauge-scale{display:flex;justify-content:space-between;margin-top:8px;font-size:12.5px;color:var(--muted);font-weight:600}
.gauge-scale span{text-align:center;min-width:0}

.formula{background:var(--soft);border:1px solid var(--line);border-left:4px solid var(--primary);border-radius:8px;padding:12px 16px;font:500 15.5px/1.7 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--ink);overflow-x:auto;white-space:pre-wrap;overflow-wrap:anywhere}

.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:#fff;max-width:100%}
.tbl{width:100%;border-collapse:collapse;font-size:14.5px}
.tbl th,.tbl td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap}
.tbl th{background:var(--soft);font-weight:700;font-size:13px;color:var(--ink-2);position:sticky;top:0}
.tbl tr:last-child td{border-bottom:0}
.tbl td.num,.tbl th.num{text-align:right;font-variant-numeric:tabular-nums}
.tbl tr.sel td{background:var(--primary-soft);font-weight:600}
.tbl tr.best td{background:#F0FDF4}
.tbl .wrap-t{white-space:normal;min-width:180px}
.ok-t{color:#166534;font-weight:700}.bad-t{color:var(--red);font-weight:700}.warn-t{color:#92400E;font-weight:700}
.minibar{display:block;width:90px;height:8px;border-radius:99px;background:var(--line);overflow:hidden}
.minibar i{display:block;height:100%;border-radius:99px;background:#22C55E}
.minibar i.caut{background:var(--amber)}.minibar i.bad{background:#DC2626}

.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translate(-50%,24px);background:var(--ink);color:#fff;padding:12px 20px;border-radius:10px;font-weight:600;font-size:15px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:120;max-width:calc(100vw - 32px);text-align:center}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* -------------------------------------------------------- conteúdo (guia/FAQ) */
.tool-after{padding-block:clamp(40px,6vw,72px);background:var(--soft);border-top:1px solid var(--line)}
.prose{max-width:78ch}
.prose h2{font-size:clamp(30px,3.6vw,42px);margin-bottom:16px}
.prose h3{font-size:clamp(23px,2.4vw,28px);margin:28px 0 10px}
.prose p{margin:0 0 14px;color:var(--ink-2)}
.prose ul,.prose ol{margin:0 0 16px;padding-left:22px;color:var(--ink-2);display:grid;gap:6px}
.prose strong{color:var(--ink)}
.prose .formula{margin:0 0 16px}
.prose .tbl-wrap{margin:0 0 16px}
.prose h2:not(:first-child){margin-top:36px}

.tip{background:var(--primary-soft);border:1px solid #D6E2FB;border-radius:8px;padding:12px 16px;font-size:14.5px;line-height:1.55;color:var(--ink-2);display:flex;gap:10px;align-items:flex-start;margin:0 0 16px}
.tip .i{color:var(--primary);width:18px;height:18px;flex:none;margin-top:2px}
.tip b{color:var(--ink)}

.tag--muted{background:#E2E8F0;color:#334155}
.two-col{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(24px,4vw,56px);align-items:start}
.faq{display:grid;border-top:2px solid var(--ink)}
.faq details{border-bottom:1px solid var(--line-2)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 2px;font:600 17px/1.35 var(--f-body);color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:none;width:28px;height:28px;border-radius:50%;border:1px solid var(--line-2);display:grid;place-items:center;font:500 20px/1 var(--f-body);color:var(--primary);background:#fff}
.faq details[open] summary::after{content:"–"}
.faq details p{padding:0 40px 18px 2px;color:var(--ink-2)}
.example{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 22px;margin-bottom:16px}
.example h3{margin:0 0 8px!important;font-size:24px!important}
.related{margin-top:clamp(36px,5vw,56px)}
.related>h2{font-size:clamp(28px,3vw,36px);margin-bottom:18px}
.rel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.rel{display:flex;gap:14px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 18px;text-decoration:none;color:var(--ink)}
.rel:hover{border-color:var(--primary);background:#fff;box-shadow:var(--shadow)}
.rel .i{width:26px;height:26px;color:var(--primary);margin-top:2px}
.rel b{display:block;font-weight:700}
.rel small{display:block;color:var(--muted);font-size:13.5px;line-height:1.4}
.disclaimer{margin-top:22px;font-size:13.5px;color:var(--muted);display:flex;gap:10px;align-items:flex-start}
.disclaimer .i{width:18px;height:18px;margin-top:2px;flex:none}

/* --------------------------------------------------------------- orçamento */
.or-itens{display:grid;gap:8px}
.or-item{display:grid;grid-template-columns:1fr 70px 110px 100px 36px;gap:8px;align-items:center}
.or-item input{min-height:40px;padding:0 10px;border:1px solid var(--line-2);border-radius:8px;font:400 15px var(--f-body)}
.or-subtotal{font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
.or-item--new{animation:or-flash 1.4s ease-out}
@keyframes or-flash{0%{background:#FEF3C7;box-shadow:0 0 0 6px #FEF3C7}100%{background:transparent;box-shadow:0 0 0 6px transparent}}
.or-add-row{display:flex;flex-wrap:wrap;gap:8px}
/* tabela de preços de referência (catálogo) */
.or-cat{scroll-margin-top:150px}
.or-cat-filters{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:10px;margin-top:12px}
.or-cat-filters input,.or-cat-filters select{width:100%;min-height:46px;padding:0 12px;border:1px solid var(--line-2);border-radius:10px;font:400 15.5px var(--f-body);background:#fff;color:var(--ink)}
.or-cat-filters input:focus,.or-cat-filters select:focus{outline:3px solid rgba(29,78,216,.25);border-color:var(--primary)}
.or-cat-count{margin:10px 0 6px;font-size:13.5px;color:var(--muted);font-weight:600}
.or-cat-list{max-height:520px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff;overscroll-behavior:contain}
.or-cat-h{position:sticky;top:0;z-index:1;margin:0;padding:9px 14px;background:#F1F5F9;border-bottom:1px solid var(--line);
  font:700 13px/1.3 var(--f-body);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2)}
.or-cat-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line)}
.or-cat-item:last-child{border-bottom:0}
.or-cat-item:hover{background:var(--soft)}
.or-cat-d{font-size:14.5px;line-height:1.35;color:var(--ink)}
.or-cat-d small{display:block;font-size:11.5px;color:var(--muted);font-weight:600;letter-spacing:.02em}
.or-cat-p{text-align:right;white-space:nowrap}
.or-cat-p b{display:block;font-size:15px;font-variant-numeric:tabular-nums}
.or-cat-p small{display:block;font-size:12px;color:var(--muted)}
.or-cat-sc{color:#92400E}
.or-cat-add{min-height:38px;padding:0 12px}
.or-cat-add .i{width:16px;height:16px}
.or-cat-empty{padding:22px 16px;text-align:center;color:var(--muted)}
/* página Sobre */
.sobre-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:6px}
.sobre-card h3{display:flex;align-items:center;gap:10px;font-size:22px;margin-bottom:12px}
.sobre-card h3 .i{color:var(--primary);width:22px;height:22px}
.sobre-card .pro-ad-list .i{color:#16A34A}
.sobre-mail{font-weight:700;font-size:17px;word-break:break-all}
@media (max-width:640px){.sobre-grid{grid-template-columns:minmax(0,1fr)}}
/* sem Pro: amostra borrada da tabela + anúncio */
.or-cat--locked{border-color:#FCD34D;background:linear-gradient(180deg,#FFFBEB,#fff 45%)}
.or-cat--locked .panel-t .pro-badge--sm{margin-left:6px}
.or-cat-teaser{position:relative;margin:14px 0;border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden;
  filter:blur(1.2px);opacity:.75;user-select:none;pointer-events:none}
.or-cat-teaser .or-cat-item{grid-template-columns:minmax(0,1fr) auto}
.or-cat-benefits{margin:6px 0 4px}
.or-cat-benefits .i{color:#D97706}
.or-guide-promo{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px;border:1px solid #FCD34D;
  border-radius:14px;background:#FFFBEB;margin-bottom:18px}
.or-guide-promo p{display:flex;gap:10px;align-items:flex-start;margin:0;max-width:80ch;color:var(--ink-2)}
.or-guide-promo p .i{flex:none;color:#D97706;width:22px;height:22px;margin-top:2px}
/* orientações de preço (fim da página) */
.or-guide{margin-bottom:clamp(36px,5vw,56px)}
.or-guide h2{font-size:clamp(30px,3.6vw,42px);margin-bottom:10px}
.or-guide .lead-s{color:var(--ink-2);max-width:78ch;margin-bottom:20px}
.or-guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.or-guide .card h3{display:flex;align-items:center;gap:10px;font-size:22px;margin-bottom:12px}
.or-guide .card h3 .i{color:var(--primary);width:22px;height:22px}
.or-guide .tbl th{font-weight:600;color:var(--ink-2);background:none}
.or-guide .tbl td{font-weight:700;text-align:right;white-space:normal}
.or-guide-tips ul{margin:0;padding-left:20px;display:grid;gap:6px;color:var(--ink-2)}
@media (max-width:900px){.or-guide-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){
  .or-cat-filters{grid-template-columns:minmax(0,1fr)}
  .or-cat-item{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"d d" "p add";row-gap:8px}
  .or-cat-d{grid-area:d}.or-cat-p{grid-area:p;text-align:left}.or-cat-add{grid-area:add}
  .or-cat-list{max-height:460px}
}
@media (max-width:640px){.or-item{grid-template-columns:1fr 1fr;grid-template-areas:"desc desc" "qtd valor" "sub remove"}
  .or-item .or-desc{grid-area:desc}.or-item .or-qtd{grid-area:qtd}.or-item .or-valor{grid-area:valor}
  .or-item .or-subtotal{grid-area:sub}.or-item .or-remove{grid-area:remove;justify-self:end}}

/* ------------------------------------------------------ impressão / PDF */
.print-sheet{display:none}
/* Documento técnico (todos os PDFs): cabeçalho com a marca (empresa no Pro), faixa de dados, seções
   com barra de destaque, tabelas com cabeçalho escuro, assinaturas e rodapé repetido em cada página.
   --acc = cor de destaque: azul do site sem Pro; grafite neutro com Pro (o documento é da empresa). */
.print-sheet,.pdf-preview{--acc:#1D4ED8;color:#0F172A;font:10pt/1.45 Arial,Helvetica,sans-serif}
.is-pro .print-sheet,.is-pro .pdf-preview{--acc:#0F172A}
.print-sheet *,.pdf-preview *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
.pr-head{display:flex;justify-content:space-between;align-items:center;gap:8mm;padding-bottom:4mm;margin-bottom:5mm;border-bottom:2px solid var(--acc)}
.pr-brand{display:flex;align-items:center;gap:4mm;min-width:0;font:inherit;color:inherit}
.pr-logo{display:block;max-height:20mm;max-width:50mm;object-fit:contain;flex:none}
.pr-co{display:grid;gap:.4mm;font:8pt/1.35 Arial,Helvetica,sans-serif;color:#475569;min-width:0}
.pr-co-name{font:700 13pt/1.15 Arial,Helvetica,sans-serif;color:#0F172A}
.pr-title{flex:none;text-align:right;font:700 13.5pt/1.2 Arial,Helvetica,sans-serif;color:var(--acc);text-transform:uppercase;letter-spacing:.02em}
.pr-title small{display:block;font:700 6.5pt/1 Arial,Helvetica,sans-serif;color:#64748B;letter-spacing:.14em;margin-bottom:1.2mm}
.pr-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:1.6mm 8mm;padding:3mm 4mm;margin-bottom:5mm;border:1px solid #CBD5E1;border-radius:1.5mm;background:#F8FAFC;font-size:9pt}
.pr-meta span{color:#64748B;font-size:7pt;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.pr-h{font:700 9.5pt/1.2 Arial,Helvetica,sans-serif;text-transform:uppercase;letter-spacing:.05em;color:#0F172A;
  margin:6mm 0 2.5mm;padding:1.4mm 0 1.4mm 2.5mm;border-left:3px solid var(--acc);background:#F1F5F9;break-after:avoid}
.pr-tbl{width:100%;border-collapse:collapse;font-size:8.8pt}
.pr-tbl th,.pr-tbl td{border:1px solid #CBD5E1;padding:1.4mm 2mm;text-align:left;vertical-align:top}
.pr-tbl th{background:#1E293B;border-color:#1E293B;color:#fff;font-weight:700;font-size:8pt;text-transform:uppercase;letter-spacing:.03em}
.pr-tbl tbody th{background:#F1F5F9;border-color:#CBD5E1;color:#334155}   /* título de linha (dado → valor) */
.pr-tbl tbody tr>th:first-child:nth-last-child(2){width:38%}   /* só em tabela de 2 colunas; nas de 4, as colunas se dividem sozinhas */
.pr-tbl tbody tr:nth-child(even) td{background:#F8FAFC}
.pr-tbl tr{break-inside:avoid}
.pr-tbl td.num,.pr-tbl th.num{text-align:right;font-variant-numeric:tabular-nums}
.pr-tbl tfoot td{font-weight:700;background:#F1F5F9}
.pr-total{display:flex;justify-content:flex-end;margin:3mm 0 0}
.pr-total div{border:2px solid var(--acc);border-radius:1.5mm;padding:2mm 5mm;font:700 12pt/1.2 Arial,Helvetica,sans-serif;text-align:right}
.pr-total small{display:block;font:700 6.5pt/1 Arial,Helvetica,sans-serif;color:#64748B;letter-spacing:.12em;text-transform:uppercase;margin-bottom:1mm}
.pr-note{font-size:8pt;color:#475569;margin-top:3mm;white-space:pre-line}
.pr-sign{display:grid;grid-template-columns:1fr 1fr;gap:14mm;margin-top:18mm;font-size:8.5pt;text-align:center;break-inside:avoid}
.pr-sign div{position:relative;border-top:1px solid #0F172A;padding-top:1.5mm}
/* assinatura virtual: fica em cima da linha do responsável técnico */
.pr-sig{position:absolute;left:0;right:0;bottom:100%;height:16mm;display:flex;align-items:flex-end;justify-content:center;pointer-events:none}
.pr-sig img{max-height:16mm;max-width:60mm;object-fit:contain;margin-bottom:-1.5mm}
.pr-sig-auto{font:400 27pt/1 "Great Vibes","Segoe Script","Brush Script MT",cursive;color:#1E3A8A;margin-bottom:-1mm;white-space:nowrap}
/* botão "Assinar o PDF" ao lado do imprimir */
.sign-toggle{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 12px;border:1px dashed var(--line-2);border-radius:8px;
  background:#fff;font:600 14px/1.2 var(--f-body);color:var(--ink);cursor:pointer;user-select:none}
.sign-toggle input{width:18px;height:18px;accent-color:var(--primary)}
.sign-toggle small{font-size:11.5px;font-weight:600;color:#B45309}
.sign-toggle:has(input:checked){border-style:solid;border-color:var(--primary);background:var(--primary-soft);color:var(--primary-d)}
.pr-sign small{display:block;color:#64748B;font-size:7.5pt}
/* moldura da página (montada em EA.print): margens próprias + rodapé que se repete em toda página */
.pr-frame{width:100%;border-collapse:collapse}
.pr-frame>thead>tr>td,.pr-frame>tfoot>tr>td,.pr-frame>tbody>tr>td{padding:0;border:0;background:none}
.pr-frame-top{height:12mm}
.pr-frame-foot{height:14mm;box-sizing:border-box;padding-top:2.5mm;margin-top:4mm;border-top:1px solid #CBD5E1;
  font:7.5pt/1.35 Arial,Helvetica,sans-serif;color:#64748B;text-align:center}
.pr-frame-foot b{color:#334155}
/* prévia do cabeçalho na tela de editar perfil */
.pdf-preview{background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px 20px 4px;box-shadow:var(--shadow);overflow:hidden}
.pdf-preview .pr-title{font-size:15px}

@media print{
  @page{size:A4;margin:12mm}
  /* documentos: margem zero na folha (o navegador não tem onde imprimir a linha de data/título/endereço)
     e as margens vêm da moldura .pr-frame. Etiquetas ficam com a margem normal (folha medida). */
  @page doc{size:A4;margin:0}
  .print-sheet:not(.eq-printbox){page:doc;padding:0 14mm}
  html{scroll-behavior:auto}
  body{background:#fff;font-size:11pt;color:#000}
  body>*:not(main){display:none!important}
  main .screen-only,.tool-hero,.tool-after,.toast,.flashes{display:none!important}
  .print-sheet{display:block!important;position:relative;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSczNDAnIGhlaWdodD0nMjIwJz48dGV4dCB4PScxNzAnIHk9JzExNScgdHJhbnNmb3JtPSdyb3RhdGUoLTMwIDE3MCAxMTApJyBmb250LWZhbWlseT0nQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWYnIGZvbnQtc2l6ZT0nMTUnIGZvbnQtd2VpZ2h0PSc3MDAnIGxldHRlci1zcGFjaW5nPScuNScgZmlsbD0nIzFENEVEOCcgZmlsbC1vcGFjaXR5PScwLjA1NScgdGV4dC1hbmNob3I9J21pZGRsZSc+RUzDiVRSSUNBIEFWQU7Dh0FEQTwvdGV4dD48L3N2Zz4=");background-repeat:repeat;background-size:85mm 55mm}
  a{color:inherit;text-decoration:none}
  *{box-shadow:none!important}
  /* Perfil Pro: sem a marca d'água (o cabeçalho e o rodapé já saem com a marca do eletricista) */
  .is-pro .print-sheet{background-image:none!important}
}

/* ---------------------------------------------------------- responsivo */
@media (max-width:1000px){
  .tool-grid,.two-col{grid-template-columns:minmax(0,1fr)}
  .sticky-col{position:static}
  .fgrid--4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .fgrid,.fgrid--3,.fgrid--4{grid-template-columns:minmax(0,1fr)}
  .kpi--main b{font-size:52px}
  .faq details p{padding-right:4px}
  .actions .btn{flex:1 1 100%}
  /* campos nunca empurram o cartão pra fora da tela */
  .field input,.field select,.field textarea,.panel input,.panel select{min-width:0;max-width:100%}
  /* tabela de "dado → valor" (2 colunas): quebra a linha em vez de cortar o texto */
  .tbl tr>:first-child:nth-last-child(2),.tbl tr>:last-child:nth-child(2){white-space:normal}
  .tbl td{white-space:normal}   /* textos longos quebram a linha; tabela muito larga ainda rola de lado dentro da caixa */
  .tbl th,.tbl td{padding:8px 10px}
  /* tabela que vira cartões no celular (ex.: lista de usuários do admin) */
  .tbl--stack thead{display:none}
  .tbl--stack,.tbl--stack tbody,.tbl--stack tr,.tbl--stack td{display:block;width:100%}
  .tbl--stack tr{padding:10px 14px;border-bottom:1px solid var(--line)}
  .tbl--stack td{border:0;padding:3px 0;white-space:normal}
  .tbl--stack td[data-label]::before{content:attr(data-label) ": ";color:var(--muted);font-size:13px;font-weight:600}
  .tbl--stack td:first-child{font-weight:700;font-size:16px}
  .tbl--stack td:empty{display:none}
}
/* orçamento: linha do item cabendo no cartão (descrição inteira; qtd e valor lado a lado) */
@media (max-width:640px){
  .or-item{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .or-item input{min-width:0;width:100%}
}

/* ============================================================ Simulador de QDC (prefixo sq-) */
.fgrid .full-2{grid-column:span 2}
.sq-grid{grid-template-columns:minmax(0,1.55fr) minmax(0,.85fr)}
.sq-bar-actions .actions{align-items:center}
.sq-saved{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.sq-saved-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.sq-saved-list li{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--soft)}
.sq-saved-list b{flex:1 1 200px;min-width:0;overflow-wrap:anywhere}
.sq-saved-list small{color:var(--muted)}

.sq-board{background:var(--soft);border:1px solid var(--line-2);border-radius:14px;padding:12px;overflow-x:auto}
.sq-cab{min-width:max-content;width:100%;background:#E7ECF2;border:3px solid #B6C2D1;border-radius:10px;padding:10px 12px 4px}
.sq-bus{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-size:11.5px;font-weight:700;color:var(--ink-2);margin-bottom:8px}
.sq-bus span{display:inline-flex;align-items:center;gap:6px}
.sq-bus i{display:inline-block;width:34px;height:6px;border-radius:3px}
.sq-bus .n{background:#38A7E6}
.sq-bus .pe{background:repeating-linear-gradient(-45deg,var(--green) 0 5px,var(--amber) 5px 10px)}
.sq-row{position:relative;display:grid;gap:2px;padding:8px 2px 8px;margin-bottom:8px}
.sq-row::before{content:"";position:absolute;left:-4px;right:-4px;top:50%;height:18px;margin-top:-9px;background:repeating-linear-gradient(90deg,#B6C2D1 0 14px,#A3B1C3 14px 16px);border-radius:2px}
.sq-it,.sq-empty{position:relative;z-index:1;height:112px;min-width:0}
.sq-it{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 2px 5px;background:#fff;border:1px solid var(--line-2);border-radius:6px;box-shadow:0 3px 0 var(--line-2);cursor:grab;font-family:var(--f-body);color:var(--ink);text-align:center}
.sq-it:hover{transform:translateY(-2px)}
.sq-it.sel{outline:3px solid var(--primary);outline-offset:2px}
.sq-it.dragging{opacity:.4}
.sq-rate{font:700 13px/1 var(--f-display);white-space:nowrap}
.sq-slot{position:relative;flex:1;width:66%;min-width:14px;border-radius:4px;background:#1E293B;overflow:hidden}
.sq-lever{position:absolute;left:10%;right:10%;height:46%;top:3px;border-radius:3px;background:#3B82F6;transition:top .28s cubic-bezier(.3,1.5,.5,1),background .2s;cursor:pointer;border:0;padding:0}
.sq-it.off .sq-lever{top:calc(54% - 3px);background:#94A3B8}
.sq-lever::after{content:"";position:absolute;left:26%;right:26%;top:42%;height:3px;background:rgba(15,23,42,.35);border-radius:2px}
.sq-ph{font:700 10px/1 var(--f-body);letter-spacing:.02em;min-height:11px;color:var(--muted)}
.sq-ph.r{color:#DC2626}.sq-ph.s{color:#B45309}.sq-ph.t{color:#475569}
.sq-num{font:600 11px/1 var(--f-body);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.sq-it--main{background:#fff;border:2px solid var(--ink);box-shadow:0 3px 0 var(--ink);cursor:default}
.sq-it--main .sq-num{color:var(--ink);font-weight:700}
.sq-it--idr{background:#EFF6FF;border-color:#93C5FD;box-shadow:0 3px 0 #93C5FD}
.sq-it--dps{background:#FFFBEB;border-color:#FCD34D;box-shadow:0 3px 0 #FCD34D}
.sq-it--cmd{background:#F1F5F9;border-color:#94A3B8;box-shadow:0 3px 0 #94A3B8}
.sq-it--idr .sq-slot{background:#1E3A8A}
.sq-it--dps .sq-slot{background:#78350F}
.sq-test{position:absolute;left:50%;top:50%;width:9px;height:9px;margin:-4px 0 0 -4px;border-radius:50%;background:#F59E0B;z-index:2}
.sq-empty{border:1px dashed var(--line-2);border-radius:6px;background:rgba(255,255,255,.6)}
.sq-empty.ok{background:#DBEAFE;border-color:var(--primary);border-style:solid}
.sq-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:12px;font-size:12.5px;color:var(--muted);font-weight:600}
.sq-legend span{display:inline-flex;align-items:center;gap:6px}
.sq-dot{display:inline-block;width:10px;height:10px;border-radius:3px}
.sq-dot.r{background:#DC2626}.sq-dot.s{background:#B45309}.sq-dot.t{background:#475569}.sq-dot.idr{background:#93C5FD}.sq-dot.dps{background:#FCD34D}

.sq-cg{margin-bottom:16px}
.sq-cg:last-child{margin-bottom:0}
.sq-cg h3{font:700 19px/1 var(--f-display);margin:0 0 8px;color:var(--ink)}
.sq-cr{display:grid;grid-template-columns:132px 1fr;gap:6px 10px;align-items:start;padding:8px 0;border-top:1px solid var(--line)}
.sq-cr b{font:600 14px/1.3 var(--f-body);padding-top:6px}
.sq-cr small{display:block;font-weight:500;color:var(--muted);font-size:12px}
.sq-cg .qb{cursor:grab;touch-action:manipulation}
.sq-cg .qb:disabled{opacity:.4;cursor:not-allowed}

.sq-pb{display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:10px;align-items:center;margin-bottom:10px;font-size:14px}
.sq-pb b{font:700 17px/1 var(--f-display)}
.sq-track{position:relative;height:14px;border-radius:99px;background:var(--line);overflow:hidden}
.sq-fill{display:block;height:100%;border-radius:99px;background:var(--primary);transition:width .3s}
.sq-fill.caut{background:var(--amber)}.sq-fill.bad{background:#DC2626}
.sq-usage{font:700 24px/1.2 var(--f-display);margin:6px 0 0}
.sq-usage small{font:500 14px var(--f-body);color:var(--muted)}

.sq-price{width:120px;min-height:36px;padding:0 10px;border:1px solid var(--line-2);border-radius:8px;font:400 15px var(--f-body);text-align:right;background:#fff;color:var(--ink)}
.sq-price:focus{outline:3px solid rgba(29,78,216,.25);border-color:var(--primary)}
.pr-tbl th.num{text-align:right}

@media (max-width:1000px){
  .sq-grid{grid-template-columns:minmax(0,1fr)}
  .fgrid .full-2{grid-column:1/-1}
}
@media print{
  .sq-svg{width:100%;height:auto}
}
/* ============================================================ Luminotécnica (prefixo lm-) */
.lm-adjust{align-items:center}
.lm-adjust .btn-icon{font:700 20px/1 var(--f-body)}
.lm-sim{max-width:100%}
.lm-svg{display:block;width:100%;max-width:560px;height:auto;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:12px}
.lm-room{fill:#F8FAFC;stroke:var(--ink);stroke-width:3}
.lm-gridl{stroke:var(--line);stroke-width:1}
.lm-dim{font:600 12px var(--f-body);fill:var(--muted)}
.lm-pt{cursor:grab;touch-action:none}
.lm-a{fill:var(--primary);stroke:#fff;stroke-width:2}
.lm-b{fill:var(--amber);stroke:#92400E;stroke-width:1.5}
.lm-pt.drag{cursor:grabbing;stroke:var(--ink)}
.lm-pt:focus-visible{outline:none;stroke:var(--ink);stroke-width:3}
/* ============================================================ Motores (prefixo mt-) */
.mt-diag{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.mt-fig{margin:0;padding:12px 10px 10px;border:1px solid var(--line);border-radius:12px;text-align:center;background:#fff}
.mt-fig.rec{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 2px rgba(29,78,216,.15)}
.mt-fig figcaption{font-weight:700;font-size:14.5px;margin-top:6px;line-height:1.25}
.mt-fig figcaption small{font-weight:500;color:var(--muted);font-size:12.5px}
.mt-fig.rec figcaption::after{content:"Recomendada para a tensão escolhida";display:block;margin-top:4px;font-size:12px;color:var(--primary-d);font-weight:700}
.mt-svg{width:100%;max-width:230px;height:auto}
.mt-box{fill:#F1F5F9;stroke:#94A3B8;stroke-width:2}
.mt-term{fill:#fff;stroke:var(--ink);stroke-width:2}
.mt-tl{font:700 8px var(--f-body);fill:var(--ink)}
/* só o texto do desenho do motor (L1/L2/L3) — sem o "text", colidia com a margem .mt-l e encolhia a letra da página */
text.mt-l{font:700 9px var(--f-body);fill:var(--muted)}
.mt-jump{stroke:#F5B301;stroke-width:5;stroke-linecap:round}
.mt-wire{stroke:var(--ink);stroke-width:2}
@media (max-width:640px){.mt-diag{grid-template-columns:minmax(0,1fr)}}
/* ============================================================ Etiquetas de QDC (prefixo eq-) */
.k-ilum{--kc:#FACC15;--kt:#111}
.k-tug{--kc:#3B82F6;--kt:#fff}
.k-tue{--kc:#EF4444;--kt:#fff}
.k-res{--kc:#CBD5E1;--kt:#111}
.k-geral{--kc:#0F172A;--kt:#fff}
.eq-bw .k-ilum,.eq-bw .k-tug,.eq-bw .k-tue,.eq-bw .k-res,.eq-bw .k-geral{--kc:#fff;--kt:#000}
.eq-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;color:var(--muted);font-weight:600}
.eq-legend span{display:inline-flex;align-items:center;gap:6px}
.eq-legend i{display:inline-block;width:12px;height:12px;border-radius:3px;background:var(--kc)}
.eq-tbl input,.eq-tbl select{min-height:38px;padding:0 8px;border:1px solid var(--line-2);border-radius:6px;font:400 14.5px var(--f-body);background:#fff;color:var(--ink);max-width:100%}
.eq-tbl input.eq-name{min-width:120px;width:100%}
.eq-tbl input.eq-amps{width:64px}
.eq-tbl td{white-space:normal}
.eq-tbl td.eq-n{font-weight:700;text-align:center}
.eq-tbl .eq-btns{display:flex;gap:4px}
.eq-tbl .btn-icon{width:34px;min-height:34px}
.eq-scroll{overflow:auto;border:1px solid var(--line);border-radius:12px;background:#E2E8F0;padding:14px;max-height:640px}
.eq-prev.z{zoom:.64}
.eq-page{background:#fff;color:#000;font-family:Arial,Helvetica,sans-serif}
.eq-a4{width:190mm;min-height:100mm;padding:8mm;box-sizing:border-box;box-shadow:0 2px 10px rgba(15,23,42,.2)}
.eq-a4-head{display:flex;justify-content:space-between;align-items:flex-end;gap:6mm;border-bottom:.8mm solid #000;padding-bottom:2mm;margin-bottom:3mm}
.eq-a4-head b{font-size:20pt;line-height:1.1}
.eq-a4-head span{font-size:10pt;text-align:right}
.eq-a4-cols{display:grid;grid-template-columns:1fr;gap:4mm}
.eq-a4-cols.two{grid-template-columns:1fr 1fr}
.eq-a4-tbl{width:100%;border-collapse:collapse;font-size:11pt}
.eq-a4-tbl th,.eq-a4-tbl td{border:.3mm solid #000;padding:1.6mm 2mm;text-align:left}
.eq-a4-tbl th{background:#E5E7EB;font-size:9pt}
.eq-a4-tbl td.eq-num{background:var(--kc);color:var(--kt);font-weight:700;text-align:center;width:13mm;font-size:12pt}
.eq-a4-tbl td.c{text-align:center;white-space:nowrap}
.eq-a4-foot{display:flex;justify-content:space-between;gap:6mm;flex-wrap:wrap;margin-top:4mm;padding-top:2mm;border-top:.3mm solid #000;font-size:9pt}
.eq-strips{display:flex;flex-wrap:wrap;align-content:flex-start;background:#fff;padding:0;width:190mm;box-sizing:border-box}
.eq-strip{width:var(--w);height:34mm;box-sizing:border-box;border:.2mm dashed #64748B;display:flex;flex-direction:column;align-items:stretch;color:#000;font-family:Arial,Helvetica,sans-serif;background:#fff}
.eq-strip-n{background:var(--kc);color:var(--kt);text-align:center;font-weight:700;font-size:10pt;line-height:6mm;height:6mm;overflow:hidden;white-space:nowrap}
.eq-strip-name{flex:1;writing-mode:vertical-rl;transform:rotate(180deg);text-align:center;font-weight:700;font-size:8.5pt;line-height:1.05;overflow:hidden;padding:.5mm 0;min-height:0;align-self:center}
.eq-strip-a{text-align:center;font-weight:700;font-size:9pt;border-top:.2mm solid #000;line-height:5.5mm;height:5.5mm;white-space:nowrap;overflow:hidden}
.eq-flags{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3mm 4mm;width:190mm;box-sizing:border-box;background:#fff}
.eq-flag{display:grid;grid-template-columns:1fr 12mm 1fr;height:10mm;border:.2mm dashed #64748B;box-sizing:border-box;align-items:stretch;font-family:Arial,Helvetica,sans-serif;color:#000;background:#fff}
.eq-flag div{display:flex;align-items:center;gap:1.5mm;padding:0 1.5mm;overflow:hidden;font-size:8.5pt;font-weight:700;white-space:nowrap}
.eq-flag b{background:var(--kc);color:var(--kt);padding:.4mm 1.6mm;border-radius:.8mm;font-size:9pt}
.eq-flag .mid{background:repeating-linear-gradient(45deg,#fff 0 1mm,#E5E7EB 1mm 2mm);padding:0}
.eq-nbs{display:flex;flex-wrap:wrap;gap:2.5mm;background:#fff;padding:3mm;width:190mm;box-sizing:border-box}
.eq-nb{width:var(--w);height:var(--h);box-sizing:border-box;border:.25mm solid #64748B;border-radius:1.2mm;display:grid;grid-template-columns:auto 1fr;gap:1.2mm;align-items:center;padding:1mm 1.6mm;font-family:Arial,Helvetica,sans-serif;color:#000;background:#fff;overflow:hidden}
.eq-nb .n{background:var(--kc);color:var(--kt);font-weight:700;font-size:13pt;line-height:1;padding:1.2mm 1.6mm;border-radius:1mm;text-align:center;min-width:7mm}
.eq-nb .t{min-width:0;font-size:7.5pt;line-height:1.15}
.eq-nb .t b{display:block;font-size:8.5pt;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.eq-printbox .eq-a4{box-shadow:none;width:auto}
.eq-printbox .eq-strips,.eq-printbox .eq-flags,.eq-printbox .eq-nbs{width:auto}
@media (max-width:1000px){.eq-scroll{max-height:none}}
.eq-flip{transform:rotate(180deg)}

/* ============================================================ Checklist de vistoria (prefixo ck-) */
.ck-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,.7fr)}
.ck-toolbar{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:space-between;padding:14px 18px}
.ck-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;color:var(--muted);font-weight:600}
.ck-legend span{display:inline-flex;align-items:center}
.ck-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--line-2);margin-right:6px}
.ck-dot.c{background:#22C55E}.ck-dot.nc{background:#DC2626}.ck-dot.na{background:#94A3B8}
.ck-filter{max-width:100%}
.ck-sec-h{display:flex;justify-content:space-between;align-items:center;gap:8px 12px;flex-wrap:wrap;margin-bottom:6px}
.ck-sec-h .panel-t{margin:0}
.ck-sec-r{display:flex;align-items:center;gap:8px}
.ck-list{list-style:none;margin:0;padding:0}
.ck-item{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:8px 14px;align-items:center;padding:14px 6px 14px 10px;border-top:1px solid var(--line);border-left:4px solid transparent}
.ck-item.is-c{border-left-color:#22C55E}
.ck-item.is-nc{border-left-color:#DC2626;background:#FEF7F7}
.ck-item.is-na{border-left-color:#94A3B8}
.ck-n{font:700 16px var(--f-display);color:var(--muted);text-align:center}
.ck-t{font-size:15.5px;line-height:1.45;color:var(--ink)}
.ck-crit{background:var(--red-soft);color:var(--red);margin-left:2px}
.ck-notebtn{display:inline;margin-left:6px;background:none;border:0;color:var(--primary);font:600 13px var(--f-body);cursor:pointer;padding:2px 4px;text-decoration:underline}
.ck-notebtn.has{color:var(--red)}
.ck-act{display:flex;gap:6px}
.ck-b{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 12px;border:1px solid var(--line-2);background:#fff;border-radius:8px;font:600 13.5px var(--f-body);cursor:pointer;color:var(--ink-2);white-space:nowrap}
.ck-b .i{width:17px;height:17px}
.ck-b:hover{border-color:var(--ink);color:var(--ink)}
.ck-b.c[aria-pressed=true]{background:#16A34A;border-color:#16A34A;color:#fff}
.ck-b.nc[aria-pressed=true]{background:#DC2626;border-color:#DC2626;color:#fff}
.ck-b.na[aria-pressed=true]{background:#64748B;border-color:#64748B;color:#fff}
.ck-note{grid-column:2/-1}
.ck-note input{width:100%;min-height:42px;padding:0 12px;border:1px solid var(--line-2);border-radius:8px;font:400 15px var(--f-body);color:var(--ink);background:#fff}
.ck-note input:focus{outline:3px solid rgba(29,78,216,.25);border-color:var(--primary)}
.ck-progress{display:flex;align-items:center;gap:14px}
.ck-progress b{font:700 36px/1 var(--f-display);min-width:78px;text-align:right}
.ck-bar{flex:1;height:14px;border-radius:99px;background:var(--line);overflow:hidden}
.ck-bar i{display:block;height:100%;width:0;background:var(--primary);border-radius:99px;transition:width .3s}
.ck-grid .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:1000px){.ck-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){
  .ck-item{grid-template-columns:28px minmax(0,1fr)}
  .ck-act{grid-column:1/-1}
  .ck-b{flex:1;justify-content:center;padding:0 6px}
  .ck-note{grid-column:1/-1}
}
.pr-tbl td.nw{white-space:nowrap}

/* ============================================================ Projeto de QDC completo (prefixo qd- / dg- / cn- / mm-) */
.qd-top-in{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:flex-end;justify-content:space-between}
.qd-top-name{flex:1 1 280px;max-width:520px}
.qd-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:18px 0 16px;padding:4px;background:var(--soft);border:1px solid var(--line);border-radius:12px}
.qd-tab{flex:1 1 auto;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 16px;border:0;border-radius:9px;background:none;font:600 15px var(--f-body);color:var(--ink-2);cursor:pointer;white-space:nowrap}
.qd-tab span{width:24px;height:24px;border-radius:50%;background:#fff;border:1px solid var(--line-2);display:grid;place-items:center;font:700 13px/1 var(--f-display);color:var(--ink-2)}
.qd-tab:hover{background:#fff}
.qd-tab[aria-selected=true]{background:var(--primary);color:#fff}
.qd-tab[aria-selected=true] span{background:#fff;color:var(--primary);border-color:#fff}
.qd-pane[hidden]{display:none}

.qd-tbl td{white-space:nowrap;vertical-align:middle}
.qd-tbl td.qd-n{font-weight:700}
.qd-tbl tr.sel td{background:var(--primary-soft)}
.qd-tbl tr.off td{opacity:.6}
.qd-in{min-height:36px;padding:0 8px;border:1px solid var(--line-2);border-radius:6px;font:400 14px var(--f-body);background:#fff;color:var(--ink);max-width:100%}
.qd-in:focus{outline:3px solid rgba(29,78,216,.25);border-color:var(--primary)}
input.qd-in[type=text]{min-width:160px;width:100%}
.qd-num{width:88px;text-align:right}
.qd-tbl .btn-icon{width:34px;min-height:34px}
.qd-tbl .eq-btns{display:flex;gap:4px}

.qd-toolbar{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;padding:12px 14px}
.qd-tgroup{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.qd-tgroup--end{margin-left:auto}
.qd-tool{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 12px;border:1px solid var(--line-2);background:#fff;border-radius:8px;font:600 14px var(--f-body);color:var(--ink-2);cursor:pointer}
.qd-tool .i{width:18px;height:18px}
.qd-tool:hover{border-color:var(--ink)}
.qd-tool[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:#fff}
.qd-zoom{min-width:54px;text-align:center;font-weight:700;font-size:13.5px}
.qd-stale{display:flex;gap:10px;align-items:flex-start;padding:12px 16px;border-radius:10px;background:#FFFBEB;border:1px solid #FDE68A;color:#78350F;font-size:14.5px;margin:12px 0 0}
.qd-stale .i{width:20px;height:20px;flex:none;margin-top:1px;color:#B45309}
.qd-ed-grid{display:grid;grid-template-columns:220px minmax(0,1fr) 260px;gap:14px;align-items:start;margin-top:12px}
.qd-pal,.qd-props{max-height:700px;overflow:auto}
.qd-canvas{position:relative;border:1px solid var(--line-2);border-radius:12px;overflow:hidden;background:#fff;height:700px;box-shadow:var(--shadow)}
#dg-svg{display:block;width:100%;height:100%;touch-action:none;outline:none;background:#fff;user-select:none}
#dg-svg.tool-line,#dg-svg.tool-rect{cursor:crosshair}
#dg-svg.tool-text{cursor:text}
#dg-svg.tool-hand{cursor:grab}
.qd-hint{position:absolute;left:10px;right:10px;bottom:10px;background:rgba(15,23,42,.84);color:#fff;font-size:12.5px;line-height:1.4;padding:6px 10px;border-radius:8px;pointer-events:none}
.qd-pg h3{font:700 16px var(--f-display);margin:12px 0 6px}
.qd-pgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.qd-sym{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:grab;font:600 11px/1.15 var(--f-body);color:var(--ink-2);text-align:center}
.qd-sym:hover{border-color:var(--primary);background:var(--primary-soft)}
.qd-sym svg{width:42px;height:42px}
.qd-props .f{margin-bottom:12px}
.qd-props textarea{min-height:64px}
.qd-plabel{font-size:12.5px;font-weight:700;color:var(--muted);margin:10px 0 6px}
.qd-palign{display:flex;flex-wrap:wrap;gap:6px}
.qd-col{width:30px;height:30px;border-radius:50%;border:2px solid var(--line-2);background:#fff;display:grid;place-items:center;cursor:pointer;padding:0}
.qd-col[aria-pressed=true]{border-color:var(--primary);box-shadow:0 0 0 2px rgba(29,78,216,.25)}
.qd-cdot{width:16px;height:16px;border-radius:50%;display:block}
.qd-cdot.c0{background:#0F172A}.qd-cdot.c1{background:#1D4ED8}.qd-cdot.c2{background:#B91C1C}.qd-cdot.c3{background:#15803D}.qd-cdot.c4{background:#B45309}

.cn-view{border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px;overflow:auto}
.cn-svg{display:block;width:100%;height:auto;max-height:720px}
.cn-chk{align-self:end;min-height:46px}
.qd-paper{background:#fff;border:1px solid var(--line-2);border-radius:6px;padding:24px 30px;max-height:920px;overflow:auto;color:#0F172A}
.qd-checks{display:grid;gap:10px}

.mm-doc{font-size:14px;line-height:1.55;color:#0F172A}
.mm-h{font:700 17px/1.2 var(--f-display);text-transform:uppercase;letter-spacing:.02em;margin:18px 0 6px;padding-bottom:3px;border-bottom:1px solid #CBD5E1}
.mm-doc p{margin:0 0 8px}
.mm-doc ul{margin:0 0 8px;padding-left:20px}
.mm-doc li{margin-bottom:3px}
.mm-note{font-size:12px;color:#5B6B80}
.mm-cover .mm-title{font:700 34px/1.05 var(--f-display);margin:36px 0 6px;color:#0F172A}
.mm-sub{color:#5B6B80;margin:0 0 22px;font-size:15px}
.mm-toc{margin:6px 0 0;padding-left:20px}
.qd-sheet{display:block;width:100%;height:auto;border:1px solid var(--line)}

@media (max-width:1100px){
  .qd-ed-grid{grid-template-columns:minmax(0,1fr)}
  .qd-canvas{height:540px}
  .qd-pal,.qd-props{max-height:none}
  .qd-pgrid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:640px){
  .qd-tab{flex:1 1 45%;padding:0 8px;font-size:14px}
  .qd-pgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .qd-tgroup--end{margin-left:0}
  .qd-paper{padding:16px}
}
@media print{
  @page land{size:A4 landscape;margin:8mm}
  .pr-page{break-after:page;page-break-after:always}
  .pr-page:last-child{break-after:auto;page-break-after:auto}
  .pr-page--land{page:land}
  .qd-sheet{width:100%;height:190mm;border:0}
  .mm-h,.pr-h{break-after:avoid;page-break-after:avoid}
  .pr-tbl tr{break-inside:avoid}
  .mm-doc{font-size:10.5pt}
  .mm-cover .mm-title{font-size:34pt;margin-top:24mm}
}
.tbl-wrap + .list-sm{margin-top:16px}
.qd-pal .hint,.qd-props .hint{font-size:13.5px;line-height:1.45}

/* ------------------------------------------------------ conta do usuário nas ferramentas */
.cloud-note{display:flex;gap:10px;align-items:flex-start;margin:16px 0 0;padding:10px 14px;border:1px solid var(--line-2);background:#fff;border-radius:10px;font-size:14.5px;color:var(--ink-2);max-width:760px}
.cloud-note .i{width:20px;height:20px;flex:none;margin-top:1px;color:var(--primary)}

/* -------------------------------------------------------------- monitoramento (admin) */
.mon-filters{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}
.mon-filters a{padding:8px 16px;border-radius:999px;border:1px solid var(--line-2);font:600 14px var(--f-body);color:var(--ink-2);text-decoration:none;background:#fff}
.mon-filters a.is-active{background:var(--primary);border-color:var(--primary);color:#fff}
.mon-filters a:hover:not(.is-active){background:var(--soft)}

.mon-chart-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px;margin-top:20px}
.mon-chart-card h2{font-size:20px;margin:0 0 4px}
.mon-chart-card .hint{margin:0 0 16px}

.mon-trend{width:100%;height:240px}
.mon-trend svg{width:100%;height:100%;display:block;overflow:visible}
.mon-axis{stroke:#e1e0d9;stroke-width:1}
.mon-baseline{stroke:#c3c2b7;stroke-width:1}
.mon-area{fill:var(--primary);fill-opacity:.1;stroke:none}
.mon-line{fill:none;stroke:var(--primary);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.mon-dot{fill:var(--primary);stroke:#fff;stroke-width:2}
.mon-crosshair{stroke:#c3c2b7;stroke-width:1;stroke-dasharray:3 3}
.mon-tick{font:400 11px var(--f-body);fill:#898781}

.mon-tip{position:fixed;z-index:80;background:#0b0b0b;color:#fff;font:400 13px var(--f-body);padding:8px 10px;border-radius:8px;pointer-events:none;max-width:240px;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.mon-tip b{font-weight:700;display:block}
.mon-tip small{display:block;color:#c3c2b7;margin-top:2px}

.mon-bars{display:flex;flex-direction:column;gap:10px}
.mon-bar-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(90px,220px) 56px;align-items:center;gap:10px}
.mon-bar-label{font-size:13.5px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mon-bar-label a{color:inherit;text-decoration:none}
.mon-bar-label a:hover{text-decoration:underline}
.mon-bar-track{display:block;height:18px;background:var(--soft);border-radius:5px;overflow:hidden}
.mon-bar-fill{display:block;height:100%;background:var(--primary);border-radius:5px;min-width:3px}
.mon-bar-value{font:600 13px var(--f-body);color:var(--ink);text-align:right;font-variant-numeric:tabular-nums}
.mon-empty{color:var(--muted);font-size:14.5px}

/* --------------------------------------------------- ferramenta que exige login pra usar */
.tool-gate{max-width:560px;margin:0 auto;text-align:center}
.tool-gate .panel-t{justify-content:center}
.tool-gate .actions{justify-content:center}

@media (max-width:640px){
  .mon-bar-row{grid-template-columns:minmax(0,1fr) minmax(60px,110px) 40px}
}
.cloud-note--on{background:#F0FDF4;border-color:#BBF7D0;color:#14532D}
.cloud-note--on .i{color:#15803D}
.cloud-status{font-style:normal;color:#166534;font-weight:600;margin-left:6px}
.cloud-note a{font-weight:600}
@media print{.cloud-note{display:none!important}}