/* App das Oficinas — design tokens do handoff */
:root{
  --primaria:#ff5a1f; --primaria-escura:#c23e0a; --primaria-escura2:#d94e10; --primaria-clara:#fff1ea;
  --texto:#15171a; --texto2:#5a5f66; --texto3:#8a8f96;
  --fundo:#ffffff; --bloco:#f2f3f5; --bloco2:#f5f6f7; --bloco3:#f7f8f9;
  --borda:#dde0e3; --divisor:#eceef0;
  --sucesso:#35c46a; --atencao:#ffb020; --erro:#ff4757; --info:#4da3ff;
  --r-input:8px; --r-btn:12px; --r-bloco:14px; --r-pill:999px;
  --sombra:0 1px 3px rgba(0,0,0,.12);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:'Inter',system-ui,sans-serif;color:var(--texto);background:var(--fundo);font-size:15px;line-height:1.45}
button{font-family:inherit;cursor:pointer;border:none;background:none}
input,select,textarea{font-family:inherit;font-size:15px;color:var(--texto)}

.tela{max-width:760px;margin:0 auto;padding:56px 20px 96px;display:none}
.tela.ativa{display:block}
.cond{font-family:'Barlow Condensed',sans-serif;text-transform:uppercase}

h1.titulo{font-family:'Barlow Condensed';font-weight:800;font-size:22px;text-transform:uppercase;letter-spacing:.5px}
.sub{color:var(--texto2);font-size:13px;margin-top:2px}

/* Botão primário */
.btn-primario{display:flex;align-items:center;justify-content:center;width:100%;min-height:52px;
  background:var(--primaria);color:#fff;border-radius:var(--r-btn);
  font-family:'Barlow Condensed';font-weight:700;font-size:17px;text-transform:uppercase;letter-spacing:.4px}
.btn-primario:disabled{opacity:.55;cursor:default}
.btn-secundario{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;
  background:#fff;border:1px solid var(--borda);color:var(--texto);border-radius:var(--r-btn);
  font-family:'Barlow Condensed';font-weight:700;font-size:16px;text-transform:uppercase;letter-spacing:.4px}
.btn-linha{display:flex;gap:10px}
.btn-linha>*{flex:1}

/* Formulários */
.campo{margin-bottom:14px}
.campo label{display:block;font-size:12px;font-weight:600;color:var(--texto2);margin-bottom:6px;text-transform:uppercase;letter-spacing:.3px}
.campo input,.campo textarea,.campo select{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--borda);
  border-radius:var(--r-input);background:#fff}
.campo textarea{min-height:72px;resize:vertical}
.campo input:focus,.campo textarea:focus{outline:2px solid var(--primaria);outline-offset:0;border-color:var(--primaria)}
.erro-inline{color:var(--erro);font-size:12px;margin-top:6px;display:none}
.erro-inline.mostrar{display:block}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}

/* Cards / blocos */
.bloco{background:var(--bloco);border:1px solid var(--borda);border-radius:var(--r-btn);padding:14px}
.grid-ind{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.grid-status{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.card-status{background:var(--bloco);border:1px solid var(--borda);border-radius:var(--r-btn);padding:14px;text-align:left}
.card-status.ativo{background:var(--primaria-clara);border-color:var(--primaria)}
.card-status .ponto{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}
.card-status .num{font-family:'Barlow Condensed';font-weight:800;font-size:22px}
.card-status .rotulo{font-size:12px;color:var(--texto2)}
.card-status .soma{font-size:11px;font-weight:600;margin-top:2px}

/* Chips de status */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{border-radius:var(--r-pill);padding:9px 15px;font-size:13px;font-weight:600;background:#fff;
  border:1px solid var(--borda);color:var(--texto2)}
.chip.ativo{background:var(--primaria);border-color:var(--primaria);color:#fff}

/* Lista de orçamentos */
.card-orc{display:block;width:100%;text-align:left;background:#fff;border:1px solid var(--borda);
  border-radius:var(--r-btn);padding:14px;margin-bottom:10px}
.card-orc .linha1{display:flex;justify-content:space-between;align-items:center;gap:8px}
.card-orc .nome{font-weight:600;font-size:15px}
.card-orc .meta{color:var(--texto2);font-size:13px;margin-top:3px}
.card-orc .total{font-family:'Barlow Condensed';font-weight:800;font-size:17px}
.badge{display:inline-block;border-radius:var(--r-pill);padding:4px 10px;font-size:11px;font-weight:700;white-space:nowrap}
.vazio{border:2px dashed var(--borda);border-radius:var(--r-bloco);padding:26px 14px;text-align:center;color:var(--texto3);font-size:13px}

/* Busca */
.busca{position:relative;margin-bottom:14px}
.busca input{width:100%;min-height:44px;padding:10px 12px 10px 38px;border:1px solid var(--borda);border-radius:var(--r-input)}
.busca svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--texto3)}

/* Diagrama */
.diagrama-wrap{position:relative;max-width:420px;margin:0 auto}
.diagrama-wrap img{width:100%;display:block;border-radius:var(--r-bloco)}
.diagrama-wrap svg{position:absolute;inset:0;width:100%;height:100%}
.diagrama-wrap polygon{fill:transparent;stroke:transparent;cursor:pointer;pointer-events:all}
.diagrama-wrap polygon.marcada{fill:rgba(255,90,31,.45);stroke:var(--primaria);stroke-width:6}
.legenda{font-size:12px;color:var(--texto2);text-align:center;margin-top:8px}
.divisor-ou{display:flex;align-items:center;gap:12px;color:var(--texto3);font-size:12px;text-transform:uppercase;
  letter-spacing:.5px;margin:18px 0}
.divisor-ou::before,.divisor-ou::after{content:'';flex:1;height:1px;background:var(--divisor)}
.grupo-pecas h3{font-family:'Barlow Condensed';font-weight:700;font-size:14px;text-transform:uppercase;
  letter-spacing:.4px;color:var(--texto2);margin:14px 0 8px}
.btns-peca{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.btn-peca{display:flex;align-items:center;justify-content:space-between;min-height:62px;padding:10px 12px;
  border:1px solid var(--borda);border-radius:var(--r-btn);background:#fff;text-align:left;
  font-family:'Barlow Condensed';font-weight:700;font-size:16px;text-transform:uppercase;color:var(--texto)}
.btn-peca .marc{width:20px;height:20px;border-radius:50%;border:2px solid var(--borda);display:flex;
  align-items:center;justify-content:center;font-size:12px;color:#fff;flex:none;margin-left:8px}
.btn-peca.sel{background:var(--primaria-clara);border-color:var(--primaria);color:var(--primaria-escura)}
.btn-peca.sel .marc{background:var(--primaria);border-color:var(--primaria)}

/* Ficha da peça (sheet) */
.sheet-fundo{position:fixed;inset:0;background:rgba(21,23,26,.5);display:none;z-index:40}
.sheet-fundo.aberta{display:block}
.sheet{position:fixed;left:0;right:0;bottom:0;background:#fff;border-radius:18px 18px 0 0;
  padding:20px;max-height:86vh;overflow:auto;z-index:41;max-width:760px;margin:0 auto}
.sheet h2{font-family:'Barlow Condensed';font-weight:800;font-size:20px;text-transform:uppercase;margin-bottom:12px}
.chips-serv{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}

/* Segmented control */
.segmented{display:flex;background:var(--bloco);border-radius:var(--r-pill);padding:4px;margin-bottom:6px}
.segmented button{flex:1;min-height:40px;border-radius:var(--r-pill);font-weight:700;font-size:14px;color:var(--texto2)}
.segmented button.ativo{background:#fff;box-shadow:var(--sombra);color:var(--primaria)}
.seg-legenda{font-size:12px;color:var(--texto3);margin-bottom:14px}

/* Documento do orçamento */
.doc{background:#fff;border:1px solid var(--borda);border-radius:var(--r-bloco);padding:18px;margin-bottom:14px}
.doc header{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--divisor);padding-bottom:12px;margin-bottom:12px}
.doc .of-nome{font-family:'Barlow Condensed';font-weight:800;font-size:18px;text-transform:uppercase;color:var(--primaria-escura2)}
.doc .num{font-size:12px;color:var(--texto3)}
.doc table{width:100%;border-collapse:collapse;font-size:13px}
.doc td,.doc th{padding:8px 4px;border-bottom:1px solid var(--divisor);text-align:left;vertical-align:top}
.doc td:last-child,.doc th:last-child{text-align:right;white-space:nowrap}
.doc .servs{color:var(--texto2);font-size:12px}
.doc .obs{color:var(--texto3);font-size:12px;font-style:italic}
.doc .total-linha td{font-family:'Barlow Condensed';font-weight:800;font-size:17px;border-bottom:none}
.doc .diagrama-mini{max-width:240px;margin:10px auto}

/* Timeline (acompanhamento) */
.timeline{list-style:none;position:relative;padding-left:26px}
.timeline::before{content:'';position:absolute;left:8px;top:6px;bottom:6px;width:2px;background:var(--divisor)}
.timeline li{position:relative;padding:0 0 18px 0;color:var(--texto3);font-size:14px}
.timeline li::before{content:'';position:absolute;left:-24px;top:3px;width:14px;height:14px;border-radius:50%;
  background:#fff;border:2px solid var(--borda)}
.timeline li.feito{color:var(--texto2)}
.timeline li.feito::before{background:var(--sucesso);border-color:var(--sucesso)}
.timeline li.atual{color:var(--texto);font-weight:700}
.timeline li.atual::before{background:var(--primaria);border-color:var(--primaria)}
.timeline .quando{display:block;font-size:11px;color:var(--texto3);font-weight:400}

/* Tab bar */
.tabbar{position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--borda);
  display:flex;z-index:30;padding-bottom:env(safe-area-inset-bottom)}
.tabbar button{flex:1;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:2px;font-size:11px;font-weight:600;color:var(--texto3)}
.tabbar button.ativo{color:var(--primaria)}
.tabbar svg{width:22px;height:22px}

/* Utilitários */
.mt{margin-top:14px}.mt2{margin-top:22px}
.gap{display:flex;flex-direction:column;gap:22px}
.oculto{display:none!important}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:80px;background:var(--texto);color:#fff;
  padding:10px 18px;border-radius:var(--r-pill);font-size:13px;z-index:60;opacity:0;transition:opacity .25s;pointer-events:none}
.toast.mostrar{opacity:1}
.link-voltar{display:inline-flex;align-items:center;gap:6px;color:var(--texto2);font-size:13px;font-weight:600;margin-bottom:14px}
.autocomplete{position:relative}
.autocomplete .sugestoes{position:absolute;left:0;right:0;top:100%;background:#fff;border:1px solid var(--borda);
  border-radius:var(--r-input);box-shadow:var(--sombra);z-index:20;max-height:200px;overflow:auto}
.autocomplete .sugestoes button{display:block;width:100%;text-align:left;padding:10px 12px;font-size:14px;border-bottom:1px solid var(--divisor)}
.autocomplete .sugestoes button:hover{background:var(--bloco3)}

/* Impressão (PDF pelo navegador) */
@media print{
  body *{visibility:hidden}
  #docImpressao,#docImpressao *{visibility:visible}
  #docImpressao{position:absolute;left:0;top:0;width:100%;border:none}
  .nao-imprimir{display:none!important}
}
