/* orcamento.css :: Orçamento e Compras (js/orcamento.js). Prefixo oc- */

.oc-wrap { display: flex; flex-direction: column; gap: 0; max-width: 1280px; min-width: 0; }
.oc-wrap *, .oc-modal * { min-width: 0; }
.oc-topo { display: flex; flex-wrap: wrap; gap: 14px 24px; align-items: flex-end; justify-content: space-between; margin-bottom: 16px; }
.oc-intro { flex: 1 1 380px; }
.oc-intro p { color: var(--body); margin: 0; max-width: 680px; font-size: 14px; }
.oc-proj { flex: 0 1 340px; width: 100%; }
.oc-proj select { font-weight: 700; }
.oc-proj-cli { font-size: 12px; color: var(--muted); }
.oc-mt { margin-top: 12px; }
.oc-span { grid-column: 1 / -1; }

/* abas: três grupos na ordem do menu; quebram em linhas em vez de rolar de lado */
.oc-tabs { flex-wrap: wrap; margin-bottom: 18px; overflow: visible; padding: 0 4px; }
.oc-tabg { display: flex; flex-direction: column; min-width: 0; padding-top: 9px; border-right: 1px solid var(--border); }
.oc-tabg:last-child { border-right: 0; }
.oc-tabg-rot { padding: 0 14px; font-size: 9.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--orange); }
.oc-tabg-bts { display: flex; flex-wrap: wrap; }
.oc-tabs .tab-btn { padding: 9px 14px 11px; font-size: 11.5px; }
@media (max-width: 768px) {
  .oc-tabs { -webkit-mask-image: none; mask-image: none; padding: 0; }
  .oc-tabg { flex: 1 1 100%; border-right: 0; border-bottom: 1px solid var(--border); }
  .oc-tabg:last-child { border-bottom: 0; }
  .oc-tabs .tab-btn { flex: 1 1 auto; padding: 10px 10px; font-size: 11px; letter-spacing: .04em; white-space: normal; }
}

.oc-barra { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 14px; }
.oc-barra .btn-g { padding: 9px 14px; }
.oc-barra .av-ic { width: 18px; height: 18px; }
.oc-btn-sm { min-width: 0 !important; padding: 8px 14px !important; font-size: 11px !important; }
.oc-lnk { background: none; border: 0; padding: 4px 2px; font-family: var(--font-ui); font-size: 12px; font-weight: 600; color: var(--navy-700);
  cursor: pointer; text-decoration: underline; text-decoration-color: rgba(26,43,90,.25); text-underline-offset: 3px; }
.oc-lnk:hover { color: var(--orange); text-decoration-color: currentColor; }
.oc-lnk-del { color: #B42318; text-decoration-color: rgba(180,35,24,.25); }
.oc-lnk-left { align-self: flex-start; }
.oc-ok { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 700; color: #067647; }
.oc-ok .av-ic { width: 16px; height: 16px; }
.oc-pend { font-size: 12px; font-weight: 700; color: #9A4A12; }
.oc-atraso, .oc-atrasado em { color: #B42318; font-weight: 700; }
.oc-vazio { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px; padding: 36px 18px; color: var(--body); }
.oc-vazio > .av-ic { width: 64px; height: 64px; margin-bottom: 4px; }
.oc-vazio .rd-dica { max-width: 560px; }
.oc-vazio .btn { margin-top: 8px; }
.oc-intro-aba { margin: 0 0 10px; }
.oc-det { border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; margin: 12px 0; background: var(--bg-zebra); }
.oc-det > summary { cursor: pointer; font-weight: 700; font-size: 13px; color: var(--ink); }
.oc-det[open] > summary { margin-bottom: 10px; }
.oc-busca { max-width: 420px; }

/* ---------- indicadores ---------- */
.oc-kpis { margin-bottom: 14px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 760px) { .oc-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.oc-kpis .stat-card { padding: 14px 16px; }
.oc-kpis .stat-val { font-family: var(--font-ui); font-size: 20px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.oc-kpi-sub { font-size: 11.5px; color: var(--muted); margin-top: 4px; }
.oc-alto { color: #B42318 !important; }
.oc-destaques { display: flex; flex-direction: column; gap: 8px; margin-bottom: 14px; }
.oc-eco { display: flex; align-items: center; gap: 10px; background: #E7F6EC; border: 1px solid #ABE5BF; color: #05603A; border-radius: 10px; padding: 10px 14px; font-size: 13.5px; }
.oc-eco .av-ic { width: 26px; height: 26px; flex: 0 0 auto; }
.oc-alerta { display: inline-block; background: #FEF3F2; border: 1px solid #FECDCA; color: #B42318; border-radius: 8px; padding: 5px 10px; font-size: 12px; font-weight: 600; margin-top: 6px; }
.oc-alerta-cat { display: block; margin: 0 0 8px; font-size: 13px; }
.oc-badge-alto { font-style: normal; font-size: 10.5px; font-weight: 700; color: #B42318; background: #FEF3F2; border: 1px solid #FECDCA; border-radius: 20px; padding: 1px 7px; white-space: nowrap; }
.oc-ambs { margin-bottom: 14px; }

/* ---------- totais por categoria ---------- */
.oc-tot { border: 1px solid var(--border); border-radius: 10px; overflow: hidden; }
.oc-tot-row { display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(4, minmax(0, 1fr)); gap: 8px; padding: 9px 12px; border-bottom: 1px solid var(--border);
  align-items: center; font-size: 13px; color: var(--body); }
.oc-tot-row:last-child { border-bottom: 0; }
.oc-tot-row > span:not(.oc-tot-cat) { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.oc-tot-cat { font-weight: 600; color: var(--ink); overflow-wrap: anywhere; }
.oc-tot-h { background: var(--navy-800); color: rgba(255,255,255,.8); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; }
.oc-tot-h > span { color: rgba(255,255,255,.8); }
.oc-tot-total { background: var(--navy-100); font-weight: 700; color: var(--navy-800); }
.oc-totais .rd-dica { margin-top: 10px; }
@media (max-width: 640px) {
  .oc-tot-h { display: none; }
  .oc-tot-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 4px 14px; }
  .oc-tot-cat { grid-column: 1 / -1; }
  .oc-tot-row > span[data-l] { display: flex; justify-content: space-between; gap: 6px; text-align: left; font-size: 12.5px; }
  .oc-tot-row > span[data-l]::before { content: attr(data-l); color: var(--muted); font-size: 11px; font-weight: 600; }
}

/* ---------- categorias e itens ---------- */
.oc-cat .sc-head .btn-g { padding: 5px 12px; font-size: 11px; }
.oc-cat .sc-body { padding-top: 6px; padding-bottom: 6px; }
.oc-cnt { display: inline-block; margin-left: 6px; background: rgba(255,255,255,.14); border-radius: 20px; padding: 1px 8px; font-size: 10px; letter-spacing: .05em; }
.oc-item { display: grid; grid-template-columns: 56px minmax(0, 1fr) minmax(0, 476px); grid-template-areas: "foto info vals" "acoes acoes acoes";
  gap: 6px 14px; padding: 14px 0; border-bottom: 1px solid var(--border); }
.oc-cat .sc-body > .oc-item:last-child { border-bottom: 0; }
.oc-item-foto { grid-area: foto; width: 56px; height: 56px; border-radius: 10px; background: var(--bg-zebra); border: 1px solid var(--border);
  display: flex; align-items: center; justify-content: center; overflow: hidden; flex: 0 0 auto; }
.oc-item-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.oc-item-foto .av-ic { width: 30px; height: 30px; opacity: .8; }
.oc-item-info { grid-area: info; }
.oc-item-nome { font-weight: 700; color: var(--ink); font-size: 14px; line-height: 1.35; overflow-wrap: anywhere; }
.oc-op { display: inline-block; margin-right: 6px; background: var(--navy-800); color: #fff; font-size: 10px; font-weight: 700; letter-spacing: .06em;
  text-transform: uppercase; padding: 2px 7px; border-radius: 4px; vertical-align: 1px; }
.oc-item-esp { font-size: 12.5px; color: var(--body); margin-top: 2px; overflow-wrap: anywhere; white-space: pre-line; }
.oc-item-meta { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: center; margin-top: 5px; font-size: 12px; color: var(--muted); }
.oc-item-meta a { color: var(--navy-700); font-weight: 600; }
.oc-st { font-size: 10.5px; font-weight: 700; padding: 2px 8px; border-radius: 20px; background: var(--navy-100); color: var(--navy-700); white-space: nowrap; }
.oc-st-cotado { background: #EEF4FF; color: #3538CD; }
.oc-st-aprovado { background: #F4F3FF; color: #5925DC; }
.oc-st-comprado { background: var(--orange-light); color: #9A4A12; }
.oc-st-entregue, .oc-st-instalado { background: #E7F6EC; color: #067647; }
.oc-st-cancelado { background: #F2F4F7; color: #667085; text-decoration: line-through; }
.oc-escolhida { display: inline-flex; align-items: center; gap: 5px; margin-top: 6px; font-size: 12px; font-weight: 700; color: #067647;
  background: #E7F6EC; border-radius: 20px; padding: 3px 10px 3px 6px; }
.oc-escolhida .av-ic { width: 16px; height: 16px; }
.oc-nota { font-size: 11.5px; color: var(--muted); margin-top: 4px; font-style: italic; }
.oc-fora .oc-vals { opacity: .55; }
.oc-cancelado { opacity: .6; }
.oc-vals { grid-area: vals; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; align-self: start; }
.oc-v { display: flex; flex-direction: column; gap: 1px; background: var(--bg-zebra); border: 1px solid var(--border); border-radius: 8px; padding: 6px 8px; overflow: hidden; }
.oc-v span { font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .09em; color: var(--muted); }
.oc-v strong { font-size: 13px; color: var(--navy-800); font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.oc-v small { font-size: 10.5px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.oc-v-zero strong { color: #B0B7C6; font-weight: 600; }
.oc-v-alto { border-color: #FECDCA; background: #FEF3F2; }
.oc-v-alto strong { color: #B42318; }
.oc-item-acoes { grid-area: acoes; display: flex; flex-wrap: wrap; gap: 2px 14px; align-items: center; }
.oc-vis { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; color: var(--body); cursor: pointer; }
.oc-vis input { width: 16px; height: 16px; accent-color: var(--orange); margin: 0; }
@media (max-width: 1180px) {
  .oc-item { grid-template-columns: 48px minmax(0, 1fr); grid-template-areas: "foto info" "vals vals" "acoes acoes"; }
  .oc-item-foto { width: 48px; height: 48px; }
}
@media (max-width: 560px) {
  .oc-vals { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* opções A e B */
.oc-grupo { border: 1.5px dashed var(--orange-border); border-radius: 12px; padding: 4px 12px; margin: 10px 0; background: rgba(226,117,38,.03); }
.oc-grupo-cab { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: center; justify-content: space-between; padding: 8px 0 4px; font-size: 12.5px; color: var(--ink); }
.oc-grupo .oc-item:last-child { border-bottom: 0; }

/* ---------- cotações ---------- */
.oc-cot-lista { display: flex; flex-direction: column; gap: 0; margin-top: 12px; }
.oc-cot-item { padding: 16px; }
.oc-cot-item.oc-foco { border-color: var(--orange); box-shadow: 0 0 0 3px var(--orange-light), var(--sh-card); }
.oc-cot-cab { display: flex; flex-wrap: wrap; gap: 10px 16px; justify-content: space-between; align-items: flex-start; margin-bottom: 12px; }
.oc-cot-tit { flex: 1 1 300px; }
.oc-cot-cont { display: flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 700; color: var(--muted); }
.oc-cot-cont i { width: 10px; height: 10px; border-radius: 50%; background: #E2E6EF; display: inline-block; }
.oc-cot-cont i.on { background: var(--orange); }
.oc-cot-cont span { margin-left: 4px; }
.oc-cot-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }
.oc-cot { position: relative; display: flex; flex-direction: column; gap: 3px; border: 1px solid var(--border); border-radius: 12px; padding: 12px 14px; background: var(--bg-surface); }
.oc-cot-min { border-color: #75E0A7; background: #F6FEF9; }
.oc-cot-esc { border: 2px solid var(--orange); box-shadow: 0 0 0 3px var(--orange-light); }
.oc-cot-badges { display: flex; flex-wrap: wrap; gap: 4px; min-height: 0; }
.oc-cot-badges:empty { display: none; }
.oc-b-esc, .oc-b-min { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; padding: 2px 8px; border-radius: 20px; }
.oc-b-esc { background: var(--orange); color: #fff; }
.oc-b-min { background: #D1FADF; color: #05603A; }
.oc-cot-forn { font-weight: 700; color: var(--ink); font-size: 13.5px; overflow-wrap: anywhere; }
.oc-cot-val { font-size: 20px; font-weight: 700; color: var(--navy-800); font-variant-numeric: tabular-nums; line-height: 1.2; }
.oc-cot-val small { font-size: 12px; color: var(--muted); font-weight: 600; }
.oc-cot-total { font-size: 12px; color: var(--body); font-weight: 600; }
.oc-dif-alto { font-size: 12px; font-weight: 700; color: #B42318; }
.oc-dif-baixo { font-size: 12px; font-weight: 700; color: #067647; }
.oc-cot-info { font-size: 12px; color: var(--muted); overflow-wrap: anywhere; }
a.oc-cot-info { color: var(--navy-700); font-weight: 600; }
.oc-cot-acoes { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: center; margin-top: 8px; }
.oc-cot-add { border: 1.5px dashed var(--navy-border); border-radius: 12px; background: none; min-height: 120px; font-family: var(--font-ui);
  font-weight: 700; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--navy-700); cursor: pointer; }
.oc-cot-add:hover { background: var(--navy-100); border-color: var(--navy-700); }

/* ---------- pedido de cotação ao fornecedor ---------- */
.oc-cot-topo { justify-content: space-between; }
.oc-cot-modo { margin: 0; }
.oc-pc { padding: 0; margin-bottom: 14px; }
.oc-pc > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.oc-pc > summary::-webkit-details-marker { display: none; }
.oc-pc > summary::after { content: ''; width: 9px; height: 9px; border-right: 2px solid rgba(255,255,255,.8); border-bottom: 2px solid rgba(255,255,255,.8);
  transform: rotate(45deg); margin: -4px 4px 0 0; transition: transform .2s; flex: 0 0 auto; }
.oc-pc[open] > summary::after { transform: rotate(-135deg); margin-top: 4px; }
.oc-pc > .sc-body { padding-top: 4px; padding-bottom: 8px; }
.oc-pc-row { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; justify-content: space-between; padding: 12px 0; border-bottom: 1px solid var(--border); }
.oc-pc-row:last-child { border-bottom: 0; }
.oc-pc-info { display: flex; flex-direction: column; gap: 2px; flex: 1 1 280px; overflow-wrap: anywhere; }
.oc-pc-info strong { font-size: 14px; color: var(--ink); }
.oc-pc-info small { font-size: 12px; color: var(--muted); }
.oc-pc-st { align-self: flex-start; font-size: 11.5px; font-weight: 700; border-radius: 20px; padding: 2px 10px; margin-top: 3px; background: var(--navy-100); color: var(--navy-700); }
.oc-pc-novo .oc-pc-st { background: var(--orange-light); color: #9A4A12; }
.oc-pc-visto .oc-pc-st { background: #EEF4FF; color: #3538CD; }
.oc-pc-respondido .oc-pc-st { background: #E7F6EC; color: #067647; }
.oc-pc-vencido .oc-pc-st { background: #FEF3F2; color: #B42318; }
.oc-pc-cancelado { opacity: .65; }
.oc-pc-extra { color: var(--body) !important; }
.oc-pc-acoes { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; }
a.oc-mini { display: inline-block; text-decoration: none; color: var(--navy-700); border-color: var(--navy-border); }
button.oc-mini { color: var(--navy-700); border-color: var(--navy-border); }
.oc-mini:hover { background: var(--navy-100); }
a.oc-mini-wa { color: #067647; border-color: #75E0A7; }
a.oc-mini-wa:hover { background: #E7F6EC; }

/* janela de pedir cotação */
.oc-pcm-bar { display: flex; flex-wrap: wrap; gap: 2px 14px; margin-bottom: 6px; }
.oc-pcm-n { font-weight: 600; text-transform: none; letter-spacing: 0; color: var(--orange); margin-left: 4px; }
.oc-pcm-lista { display: flex; flex-direction: column; gap: 5px; max-height: 260px; overflow-y: auto; padding: 2px; }
.oc-pcm-cat { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); padding: 6px 2px 0; }
.oc-pcm-it, .field label.oc-pcm-it { display: flex; gap: 10px; align-items: flex-start; padding: 8px 10px; border: 1px solid var(--border); border-radius: 10px; cursor: pointer;
  text-transform: none; letter-spacing: 0; font-size: 13px; font-weight: 500; color: var(--ink); background: var(--bg-surface); }
.field label.oc-pcm-it.on, .oc-pcm-it.on { border-color: var(--orange-border); background: var(--orange-light); }
.oc-pcm-it input { width: 17px; height: 17px; margin-top: 1px; accent-color: var(--orange); flex: 0 0 auto; }
.oc-pcm-it span { display: flex; flex-direction: column; overflow-wrap: anywhere; }
.oc-pcm-it small { color: var(--muted); font-size: 11.5px; }
.oc-pcm-sug { font-style: normal; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #05603A; background: #D1FADF; border-radius: 20px; padding: 1px 7px; margin-left: 4px; vertical-align: 1px; }
.oc-pcm-env { display: flex; flex-direction: column; margin-top: 6px; }

/* mapa de cotações: itens nas linhas, fornecedores nas colunas; rola de lado só dentro da caixa */
.oc-mapa-sc .sc-body { padding-top: 12px; }
.oc-leg { display: inline-flex; flex-wrap: wrap; gap: 4px; margin-left: 6px; vertical-align: 1px; }
.oc-b-rap { background: #D1E9FF; color: #175CD3; }
.oc-b-rap, .oc-mapa .oc-b-esc, .oc-mapa .oc-b-min, .oc-leg b { font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; padding: 2px 7px; border-radius: 20px; white-space: nowrap; }
.oc-mapa-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--border); border-radius: 12px; margin-top: 4px; max-width: 100%; }
.oc-mapa-wrap:focus-visible { outline: 2px solid var(--orange); outline-offset: 2px; }
.oc-mapa { border-collapse: separate; border-spacing: 0; width: 100%; font-size: 12.5px; }
.oc-mapa th, .oc-mapa td { border-bottom: 1px solid var(--border); border-right: 1px solid var(--border); padding: 0; vertical-align: top; background: var(--bg-surface); }
.oc-mapa tr > :last-child { border-right: 0; }
.oc-mapa thead th { background: var(--navy-800); color: #fff; font-size: 12px; text-align: left; padding: 9px 10px; vertical-align: bottom; }
.oc-mapa thead th small { display: block; font-weight: 500; color: rgba(255,255,255,.65); font-size: 10.5px; }
.oc-mapa .oc-mi { position: sticky; left: 0; z-index: 1; min-width: 170px; max-width: 240px; padding: 9px 10px; text-align: left; box-shadow: 1px 0 0 var(--border); }
.oc-mapa thead .oc-mi { z-index: 2; }
.oc-mapa tbody .oc-mi strong { display: block; color: var(--ink); font-size: 12.5px; line-height: 1.3; overflow-wrap: anywhere; }
.oc-mapa tbody .oc-mi small, .oc-mapa tfoot small { display: block; color: var(--muted); font-size: 11px; font-weight: 500; }
.oc-mf { min-width: 150px; }
.oc-mf span { display: block; overflow-wrap: anywhere; }
.oc-mc-in { display: flex; flex-direction: column; gap: 2px; width: 100%; min-height: 100%; padding: 9px 10px; text-align: left; font-family: var(--font-ui);
  background: none; border: 0; color: var(--body); font-size: 12px; }
button.oc-mc-in { cursor: pointer; }
button.oc-mc-in:hover { background: var(--orange-light); }
.oc-mc-acao { display: none; font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--orange); margin-top: 2px; }
button.oc-mc-in:hover .oc-mc-acao, button.oc-mc-in:focus-visible .oc-mc-acao { display: block; }
.oc-mc-v { font-size: 14.5px; font-weight: 700; color: var(--navy-800); font-variant-numeric: tabular-nums; white-space: nowrap; }
.oc-mc-v small { font-size: 10.5px; color: var(--muted); font-weight: 600; }
.oc-mc-t { font-variant-numeric: tabular-nums; font-weight: 600; }
.oc-mc-p { color: var(--body); }
.oc-mc-sem { color: var(--muted); font-style: italic; }
.oc-mc-o { color: var(--muted); font-size: 11px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; }
.oc-mc-bs { display: flex; flex-wrap: wrap; gap: 3px; margin-top: 3px; }
.oc-mc-bs:empty { display: none; }
td.oc-mc-min { background: #F6FEF9; }
td.oc-mc-min .oc-mc-v { color: #067647; }
td.oc-mc-rap { box-shadow: inset 0 -3px 0 #53B1FD; }
td.oc-mc-esc { background: var(--orange-light); box-shadow: inset 0 0 0 2px var(--orange); }
.oc-mc-vazio span { display: block; padding: 9px 10px; color: #98A2B3; font-size: 11.5px; font-style: italic; }
.oc-mc-agu span { color: #9A4A12; font-style: normal; font-weight: 600; }
.oc-mapa tfoot th, .oc-mapa tfoot td { background: var(--bg-zebra); padding: 9px 10px; font-size: 12px; }
.oc-mapa tfoot th { font-weight: 700; color: var(--ink); }
.oc-mapa tfoot td strong { display: block; color: var(--navy-800); font-size: 14px; font-variant-numeric: tabular-nums; }
.oc-mapa tfoot td.oc-mt-min { background: #F6FEF9; }
.oc-mapa tfoot td .oc-b-min { display: inline-block; margin-top: 4px; }
.oc-mapa tfoot tr:last-child > * { border-bottom: 0; }
.oc-mapa tfoot .btn { white-space: nowrap; }
.oc-mapa-res { display: flex; flex-wrap: wrap; gap: 10px 22px; align-items: center; margin-top: 12px; padding: 12px 14px; background: var(--bg-zebra); border-radius: 10px; }
.oc-mapa-res > div { display: flex; flex-direction: column; }
.oc-mapa-res span { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); }
.oc-mapa-res strong { font-size: 17px; color: var(--navy-800); font-variant-numeric: tabular-nums; }
.oc-mapa-res small { font-size: 11.5px; color: var(--muted); }
.oc-mapa-res .btn { margin-left: auto; white-space: normal; line-height: 1.3; text-align: center; }
@media (max-width: 640px) {
  .oc-mapa .oc-mi { min-width: 128px; max-width: 150px; }
  .oc-mf { min-width: 128px; }
  .oc-mapa-res .btn { margin-left: 0; flex: 1 1 100%; }
  .oc-cot-topo .btn-p { flex: 1 1 100%; }
}

/* abertura do portal pelo cliente */
.oc-portal-ab { font-size: 12px; color: var(--muted); }
.oc-portal-ab.on { color: #067647; font-weight: 600; }

/* ---------- pedidos e entregas ---------- */
.oc-2col { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; }
@media (max-width: 900px) { .oc-2col { grid-template-columns: minmax(0, 1fr); } }
.oc-agenda, .oc-prontos, .oc-horas { list-style: none; margin: 0; padding: 0; }
.oc-agenda li { display: flex; gap: 12px; align-items: flex-start; padding: 9px 0; border-bottom: 1px solid var(--border); }
.oc-agenda li:last-child, .oc-prontos li:last-child, .oc-horas li:last-child { border-bottom: 0; }
.oc-ag-data { flex: 0 0 52px; display: flex; flex-direction: column; align-items: center; background: var(--navy-800); color: #fff; border-radius: 8px; padding: 5px 4px; line-height: 1.1; }
.oc-ag-data strong { font-size: 14px; }
.oc-ag-data small { font-size: 10px; opacity: .7; }
.oc-atrasado .oc-ag-data { background: #B42318; }
.oc-ag-txt { display: flex; flex-direction: column; gap: 1px; font-size: 13px; color: var(--ink); overflow-wrap: anywhere; }
.oc-ag-txt small { color: var(--muted); font-size: 12px; }
.oc-ag-txt em { font-style: normal; font-size: 11.5px; }
.oc-ag-tipo { align-self: flex-start; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; padding: 1px 7px; border-radius: 20px; }
.oc-ag-ent { background: #EEF4FF; color: #3538CD; }
.oc-ag-ins { background: var(--orange-light); color: #9A4A12; }
.oc-prontos li, .oc-horas li { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--border); }
.oc-prontos li > span, .oc-horas li > span:first-child { display: flex; flex-direction: column; font-size: 13px; color: var(--ink); overflow-wrap: anywhere; }
.oc-prontos small, .oc-horas small { color: var(--muted); font-size: 12px; }
.oc-prontos .btn { flex: 0 0 auto; }
.oc-horas-acoes { display: flex; gap: 10px; flex: 0 0 auto; }

.oc-ped { padding: 0; }
.oc-ped-cab { display: flex; flex-wrap: wrap; gap: 10px 16px; justify-content: space-between; align-items: flex-end; padding: 14px 16px 10px; border-bottom: 1px solid var(--border); }
.oc-ped-pedido .oc-ped-cab, .oc-ped-aberto .oc-ped-cab { border-left: 4px solid var(--orange); }
.oc-ped-entregue .oc-ped-cab, .oc-ped-instalado .oc-ped-cab { border-left: 4px solid #12B76A; }
.oc-ped-cancelado { opacity: .7; }
.oc-ped-tit { flex: 1 1 260px; }
.oc-ped-forn { font-family: var(--font-title); font-size: 18px; font-weight: 700; color: var(--ink); overflow-wrap: anywhere; }
.oc-ped-meta { font-size: 12.5px; color: var(--body); }
.oc-ped-cod { display: inline-block; vertical-align: 3px; margin-left: 6px; font-family: var(--font-ui); font-size: 10.5px; font-weight: 700; letter-spacing: .08em;
  color: var(--navy-700); background: var(--navy-100); border-radius: 4px; padding: 2px 7px; }
.oc-ped-meta strong { color: var(--navy-800); font-size: 14px; }
.oc-ped-st { flex: 0 1 220px; width: 100%; }
.oc-ped-datas { display: flex; flex-wrap: wrap; gap: 6px 18px; padding: 10px 16px; font-size: 12px; color: var(--muted); background: var(--bg-zebra); border-bottom: 1px solid var(--border); }
.oc-ped-datas strong { color: var(--ink); }
.oc-ped-itens { padding: 6px 16px; }
.oc-ped-conf-tit { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); padding: 6px 0 2px; }
.oc-ped-it { display: flex; flex-wrap: wrap; gap: 6px 12px; justify-content: space-between; align-items: center; padding: 8px 0; border-bottom: 1px dashed var(--border); }
.oc-ped-it:last-child { border-bottom: 0; }
.oc-ped-it-nome { flex: 1 1 240px; font-size: 13px; font-weight: 600; color: var(--ink); overflow-wrap: anywhere; }
.oc-ped-it-nome small { display: block; font-weight: 500; color: var(--muted); font-size: 12px; }
.oc-ped-it-conf { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.oc-mini { font-family: var(--font-ui); font-size: 11.5px; font-weight: 700; border-radius: 20px; padding: 5px 11px; cursor: pointer; border: 1px solid; background: #fff; }
.oc-mini-ok { color: #067647; border-color: #75E0A7; }
.oc-mini-ok:hover { background: #E7F6EC; }
.oc-mini-x { color: #B42318; border-color: #FDA29B; }
.oc-mini-x:hover { background: #FEF3F2; }
.oc-ped-obs { margin: 0 16px 8px; font-size: 12.5px; color: var(--body); background: var(--bg-zebra); border-radius: 8px; padding: 8px 10px; white-space: pre-line; overflow-wrap: anywhere; }
.oc-ped-acoes { display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: center; padding: 10px 16px 14px; border-top: 1px solid var(--border); }
.oc-ped-acoes > span:first-child { margin-right: auto; }

/* ---------- ocorrências ---------- */
.oc-oco-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 0 16px; margin-top: 12px; }
@media (max-width: 480px) { .oc-oco-lista { grid-template-columns: minmax(0, 1fr); } }
.oc-oco-aberta { border-left: 4px solid #F04438; }
.oc-oco-resolvida { border-left: 4px solid #12B76A; }
.oc-oco-cab { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; margin-bottom: 6px; }
.oc-tipo { font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; background: var(--navy-800); color: #fff; border-radius: 4px; padding: 2px 8px; }
.oc-oco-cab .oc-atraso { font-size: 12px; }
.oc-oco-desc { font-size: 14px; color: var(--ink); font-weight: 600; white-space: pre-line; overflow-wrap: anywhere; }
.oc-oco-meta { display: flex; flex-wrap: wrap; gap: 3px 14px; margin-top: 6px; font-size: 12px; color: var(--muted); }
.oc-oco-meta strong { color: var(--body); }
.oc-fotos { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.oc-foto { position: relative; display: block; width: 76px; height: 76px; border-radius: 8px; overflow: hidden; border: 1px solid var(--border); background: var(--bg-zebra); }
.oc-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.oc-foto button { position: absolute; top: 3px; right: 3px; width: 22px; height: 22px; border-radius: 50%; border: 0; background: rgba(12,21,37,.75); color: #fff;
  font-size: 15px; line-height: 20px; cursor: pointer; padding: 0; }
.oc-oco-acoes { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; margin-top: 12px; }
.oc-oco-acoes .av-ic { width: 16px; height: 16px; }
.oc-file { position: relative; overflow: hidden; margin-top: 10px; align-self: flex-start; cursor: pointer; }
.oc-file input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.oc-file .av-ic { width: 18px; height: 18px; }

/* ---------- fornecedores ---------- */
.oc-forn-top .oc-busca { flex: 1 1 220px; }
.oc-forn-grid { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.oc-forn { cursor: default; gap: 5px; align-items: stretch; }
.oc-forn > .pj-etapa { align-self: flex-start; }
.oc-forn-links { display: flex; flex-direction: column; gap: 2px; font-size: 12.5px; }
.oc-forn-links a { color: var(--navy-700); font-weight: 600; overflow-wrap: anywhere; }
.oc-forn-links:empty { display: none; }
.oc-forn-acoes { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; margin-top: 4px; }
.oc-forn-dados { display: flex; flex-direction: column; gap: 1px; font-size: 12px; color: var(--body); overflow-wrap: anywhere; }
.oc-forn-dados strong { color: var(--ink); }
.oc-forn-av { display: inline-flex; align-items: center; gap: 6px; }
.oc-forn-av small { font-size: 11.5px; color: var(--muted); font-weight: 600; }
.oc-estrelas { display: inline-flex; gap: 2px; }
.oc-estrelas i { width: 13px; height: 13px; background: #D0D5DD;
  clip-path: polygon(50% 0, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); }
.oc-estrelas i.on { background: var(--orange); }

/* portal do fornecedor, dentro do cartão */
.oc-fp { display: flex; flex-direction: column; gap: 6px; margin-top: 6px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg-zebra); }
.oc-fp-on { border-color: #ABE5BF; background: #F6FEF9; }
.oc-fp-cab { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: center; justify-content: space-between; }
.oc-fp-tit { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 700; color: var(--ink); text-transform: uppercase; letter-spacing: .07em; }
.oc-fp-tit .av-ic { width: 16px; height: 16px; }
.oc-fp-st { font-size: 11px; font-weight: 700; border-radius: 20px; padding: 2px 9px; background: #F2F4F7; color: #667085; }
.oc-fp-st.on { background: #D1FADF; color: #05603A; }
.oc-fp small { font-size: 11.5px; color: var(--muted); line-height: 1.4; }
.oc-fp-ac.on { color: #067647; font-weight: 600; }
.oc-fp > .btn { align-self: flex-start; }
.oc-fp-bts { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; }
.oc-fp .oc-portal-link { font-size: 11.5px; background: #fff; }

/* o que o fornecedor informou pelo portal (pedidos e ocorrências) */
.oc-pfp { display: flex; flex-wrap: wrap; gap: 4px 16px; align-items: center; padding: 9px 16px; font-size: 12.5px; color: var(--body);
  background: #F6FEF9; border-bottom: 1px solid var(--border); overflow-wrap: anywhere; }
.oc-pfp-agu { background: var(--orange-light); }
.oc-pfp .av-ic { width: 15px; height: 15px; }
.oc-pfp-rot { display: inline-flex; align-items: center; gap: 5px; flex: 1 1 100%; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .09em; color: var(--muted); }
.oc-pfp-obs { flex: 1 1 100%; white-space: pre-line; }
.oc-pfp .oc-pend { display: inline-flex; align-items: center; gap: 5px; }
.oc-oco-resp { margin-top: 10px; padding: 9px 11px; border-radius: 8px; background: #F6FEF9; border: 1px solid #ABE5BF; }
.oc-oco-resp .oc-pfp-rot { margin-bottom: 3px; }
.oc-oco-resp .av-ic { width: 15px; height: 15px; }
.oc-oco-resp p { margin: 0; font-size: 13px; color: var(--ink); white-space: pre-line; overflow-wrap: anywhere; }

/* ---------- controle de orçamentos: filtros, seleção e todos os projetos ---------- */
.oc-filtros { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px 12px; padding: 12px 14px; margin-bottom: 12px;
  background: var(--bg-surface); border: 1px solid var(--border); border-radius: 12px; box-shadow: var(--sh-card); }
.oc-filtros select { width: 100%; }
@media (max-width: 1100px) { .oc-filtros { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) { .oc-filtros { grid-template-columns: repeat(2, minmax(0, 1fr)); } .oc-filtros .field:first-child { grid-column: 1 / -1; } }
.oc-filtro-ativo { display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: center; justify-content: space-between; margin-bottom: 12px; padding: 8px 12px;
  border: 1px solid var(--orange-border); border-radius: 10px; background: var(--orange-light); font-size: 12.5px; color: var(--ink); overflow-wrap: anywhere; }
.oc-sel-dica { margin: -4px 0 12px; }
.oc-selbar { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; justify-content: space-between; margin-bottom: 14px; padding: 10px 14px;
  border-radius: 12px; background: var(--navy-800); color: #fff; font-size: 13px; }
.oc-selbar-bts { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; }
.oc-selbar .btn-g { background: #fff; color: var(--navy-800); padding: 8px 12px; }
.oc-selbar .btn-g .av-ic { width: 18px; height: 18px; }
.oc-selbar .oc-lnk { color: #fff; text-decoration-color: rgba(255,255,255,.5); }
.oc-sel input { accent-color: var(--orange); }
.oc-tot-cat small { display: block; font-weight: 500; color: var(--muted); font-size: 11.5px; }
.oc-tot-cat .oc-lnk { text-align: left; font-size: 13px; padding: 0; }
.oc-pj-det { padding: 0; }
.oc-pj-det > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.oc-pj-det > summary::-webkit-details-marker { display: none; }
.oc-pj-det > summary::after { content: ''; width: 9px; height: 9px; border-right: 2px solid rgba(255,255,255,.8); border-bottom: 2px solid rgba(255,255,255,.8);
  transform: rotate(45deg); margin: -4px 4px 0 0; flex: 0 0 auto; }
.oc-pj-det[open] > summary::after { transform: rotate(-135deg); margin-top: 4px; }
.oc-pj-det > .sc-body { padding-top: 4px; padding-bottom: 6px; }
.oc-li { display: flex; flex-wrap: wrap; gap: 6px 14px; justify-content: space-between; align-items: center; padding: 9px 0; border-bottom: 1px solid var(--border); }
.oc-li:last-child { border-bottom: 0; }
.oc-li-nome { flex: 1 1 260px; font-size: 13px; font-weight: 600; color: var(--ink); overflow-wrap: anywhere; }
.oc-li-nome small { display: block; font-weight: 500; color: var(--muted); font-size: 12px; }
.oc-li-vals { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: center; font-size: 12px; color: var(--muted); }
.oc-li-vals strong { color: var(--navy-800); font-variant-numeric: tabular-nums; }
.oc-cot-bts { display: flex; flex-wrap: wrap; gap: 8px; }
@media (max-width: 640px) { .oc-cot-bts, .oc-cot-bts .btn { flex: 1 1 100%; } }

/* ---------- planejamento ---------- */
.oc-pl { border: 1px solid var(--border); border-radius: 10px; overflow: hidden; }
.oc-pl-row { display: grid; grid-template-columns: minmax(0, 1.7fr) repeat(2, minmax(0, .8fr)) repeat(3, minmax(0, .9fr)) minmax(0, 1fr);
  gap: 6px 10px; padding: 11px 12px; border-bottom: 1px solid var(--border); align-items: center; font-size: 13px; color: var(--body); }
.oc-pl-row:last-child { border-bottom: 0; }
.oc-pl-row > span[data-l] { font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.oc-pl-row em { font-style: normal; color: var(--muted); font-size: 12px; }
.oc-pl-h { background: var(--navy-800); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; padding-top: 9px; padding-bottom: 9px; }
.oc-pl-h > span { color: rgba(255,255,255,.8); }
.oc-pl-cat strong { display: flex; align-items: center; gap: 6px; color: var(--ink); font-size: 13.5px; overflow-wrap: anywhere; }
.oc-pl-cat .av-ic { width: 24px; height: 24px; flex: 0 0 auto; }
.oc-pl-cat small { display: block; color: var(--muted); font-size: 11.5px; margin-top: 2px; }
.oc-pl-obs { font-style: italic; white-space: pre-line; overflow-wrap: anywhere; }
.oc-pl-st { gap: 2px; }
.oc-pl-st select { padding: 6px 8px; font-size: 12.5px; }
.oc-pl-st-l { display: none; }   /* no computador o cabeçalho da coluna já diz "Status"; o select tem aria-label */
.oc-pl-pe { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: center; }
.oc-pl-bar { flex: 0 1 220px; height: 7px; border-radius: 7px; background: #EEF0F5; overflow: hidden; }
.oc-pl-bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--orange), #F3A56B); border-radius: 7px; }
.oc-pl-bar.alto i { background: #D92D20; }
.oc-pl-pe small { flex: 1 1 220px; font-size: 11.5px; color: var(--muted); }
.oc-pl-acoes { display: flex; gap: 14px; margin-left: auto; }
@media (max-width: 900px) {
  .oc-pl-h { display: none; }
  .oc-pl-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px 14px; }
  .oc-pl-cat, .oc-pl-st { grid-column: 1 / -1; }
  .oc-pl-row > span[data-l] { display: flex; flex-direction: column; font-size: 12.5px; }
  .oc-pl-row > span[data-l]::before { content: attr(data-l); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); }
  .oc-pl-st-l { display: block; }
  .oc-pl-acoes { margin-left: 0; }
}

/* ---------- padronização (kits) ---------- */
.oc-kit-grid { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.oc-kit { cursor: default; gap: 6px; align-items: stretch; }
.oc-kit-tags { display: flex; flex-wrap: wrap; gap: 4px; }
.oc-kit-tags:empty { display: none; }
.oc-kit-tags .pj-etapa { margin-top: 0; }
.oc-kit-its { list-style: none; margin: 2px 0; padding: 0; font-size: 12.5px; }
.oc-kit-its li { display: flex; justify-content: space-between; gap: 10px; padding: 4px 0; border-bottom: 1px dashed var(--border); color: var(--ink); }
.oc-kit-its li > span { overflow-wrap: anywhere; }
.oc-kit-its small { flex: 0 0 auto; max-width: 45%; text-align: right; color: var(--muted); font-size: 11.5px; overflow-wrap: anywhere; }
.oc-kit-its .oc-kit-mais { color: var(--muted); font-style: italic; border-bottom: 0; }
.oc-kit-ed { display: flex; flex-direction: column; gap: 8px; }
.oc-kit-row { display: grid; grid-template-columns: 82px 82px auto minmax(0, 1fr) minmax(0, 1.2fr) 28px;
  grid-template-areas: "desc desc desc desc cat x" "esp esp esp esp esp esp" "q u m2 v f f"; gap: 8px; align-items: end;
  padding: 10px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg-zebra); }
.oc-kit-row input[type=text], .oc-kit-row select { padding: 7px 8px; font-size: 12.5px; width: 100%; }
.oc-kr-desc { grid-area: desc; font-weight: 600; }
.oc-kr-cat { grid-area: cat; }
.oc-kr-esp { grid-area: esp; }
.oc-kr-q { grid-area: q; } .oc-kr-u { grid-area: u; } .oc-kr-m2 { grid-area: m2; } .oc-kr-v { grid-area: v; } .oc-kr-f { grid-area: f; }
.oc-kr-x { grid-area: x; align-self: center; }
.field label.oc-kr-l, .oc-kr-l { display: flex; flex-direction: column; gap: 2px; font-size: 10px; letter-spacing: .08em; }
.oc-kr-l .ig { padding: 0 8px; background: #fff; }
.oc-kr-l .ig input { padding: 7px 0; }
.field label.oc-kr-m2, .oc-kr-m2 { display: inline-flex; align-items: center; gap: 6px; padding-bottom: 8px; font-size: 12px; font-weight: 600; text-transform: none; letter-spacing: 0; color: var(--ink); cursor: pointer; }
.oc-kr-m2 input { width: 16px; height: 16px; accent-color: var(--orange); margin: 0; }
@media (max-width: 600px) {
  .oc-kit-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 28px;
    grid-template-areas: "desc desc x" "cat cat ." "esp esp esp" "q u u" "m2 m2 m2" "v f f"; }
}
.oc-apl { display: flex; flex-direction: column; border: 1px solid var(--border); border-radius: 10px; max-height: 320px; overflow-y: auto; }
.oc-apl-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 4px 14px; padding: 8px 10px; border-bottom: 1px solid var(--border); align-items: center; font-size: 13px; }
.oc-apl-row:last-child { border-bottom: 0; }
.oc-apl-row > span:first-child { display: flex; flex-direction: column; overflow-wrap: anywhere; color: var(--ink); }
.oc-apl-row small { color: var(--muted); font-size: 11.5px; }
.oc-apl-q { font-weight: 700; color: var(--navy-800); text-align: right; font-variant-numeric: tabular-nums; }
.oc-apl-v { color: var(--body); text-align: right; font-variant-numeric: tabular-nums; }
@media (max-width: 480px) { .oc-apl-row { grid-template-columns: minmax(0, 1fr) auto; } .oc-apl-v { grid-column: 2; } }

/* ---------- previsibilidade ---------- */
.oc-prev-esc { margin-bottom: 14px; }
.oc-prev-vazio { padding: 14px 16px; border: 1px dashed var(--navy-border); border-radius: 10px; background: var(--bg-zebra); font-size: 13px; line-height: 1.55; color: var(--body); }
.oc-prev-b .rd-dica { margin-top: 8px; }
.oc-prev-res { margin: 0 0 8px; font-size: 13px; color: var(--body); }
.oc-prev-res strong { color: var(--navy-800); }
.oc-leg-g { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-bottom: 8px; font-size: 11.5px; color: var(--muted); }
.oc-leg-g i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; vertical-align: -2px; margin-right: 4px; }
.oc-g-comp { background: var(--navy-800); }
.oc-g-aberto { background: var(--orange); }
.oc-g-plano { background: repeating-linear-gradient(45deg, #F3A56B 0 4px, #FBD9BF 4px 8px); }
.oc-gmes { list-style: none; margin: 0; padding: 0; }
.oc-gmes li { display: grid; grid-template-columns: 96px minmax(0, 1fr) minmax(0, 240px); gap: 6px 12px; align-items: center; padding: 7px 0; border-bottom: 1px solid var(--border); }
.oc-gmes li:last-child { border-bottom: 0; }
.oc-gmes-m { display: flex; flex-direction: column; font-size: 13px; font-weight: 700; color: var(--ink); }
.oc-gmes-m small { font-size: 10.5px; font-weight: 700; color: var(--orange); }
.oc-gmes-bar { display: flex; height: 14px; border-radius: 4px; background: #F2F4F7; overflow: hidden; }
.oc-gmes-bar i { display: block; height: 100%; }
.oc-gmes-v { display: flex; flex-direction: column; text-align: right; font-size: 12px; overflow-wrap: anywhere; }
.oc-gmes-v strong { font-size: 13.5px; color: var(--navy-800); font-variant-numeric: tabular-nums; }
.oc-gmes-v small { font-size: 11px; color: var(--muted); }
.oc-gmes-passado { opacity: .72; }
.oc-gmes-atual .oc-gmes-m { color: var(--orange); }
@media (max-width: 640px) {
  .oc-gmes li { grid-template-columns: 74px minmax(0, 1fr); }
  .oc-gmes-v { grid-column: 1 / -1; text-align: left; }
}
.oc-prev-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 22px; }
@media (max-width: 900px) { .oc-prev-2 { grid-template-columns: minmax(0, 1fr); } }
.oc-prev-h3 { font-family: var(--font-ui); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: var(--orange); margin: 0 0 6px; }
.oc-rt-prev th, .oc-rt-prev td { white-space: normal !important; }
.oc-rt-prev th:nth-child(n+2), .oc-rt-prev td:nth-child(n+2) { text-align: right; }
.oc-prev-ir { margin-left: auto; align-self: center; flex: 0 0 auto; }

/* ---------- Documento de Solicitação de Compras (tela de impressão) ---------- */
.oc-dsc { background: #fff; color: var(--body); font-family: var(--font-ui); padding: 28px 32px; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.oc-dsc-cab { display: flex; flex-wrap: wrap; gap: 14px 24px; align-items: center; justify-content: space-between; padding-bottom: 16px; border-bottom: 3px solid var(--orange); }
.oc-dsc-marca img { max-height: 58px; max-width: 220px; object-fit: contain; display: block; }
.oc-dsc-marca span { font-family: var(--font-title); font-size: 26px; font-weight: 700; color: var(--navy-800); }
.oc-dsc-esc { display: flex; flex-direction: column; align-items: flex-end; text-align: right; font-size: 11.5px; color: var(--body); gap: 1px; overflow-wrap: anywhere; }
.oc-dsc-esc strong { font-size: 13px; color: var(--ink); }
.oc-dsc-tit { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; margin: 18px 0 12px; }
.oc-dsc-tit h1 { margin: 0; font-family: var(--font-title); font-size: 26px; color: var(--navy-800); }
.oc-dsc-tit span { font-size: 12px; color: var(--muted); }
.oc-dsc-dados { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 8px 18px; padding: 12px 14px; margin-bottom: 14px;
  background: #F7F8FB; border: 1px solid var(--border); border-radius: 10px; }
.oc-dsc-dados div { display: flex; flex-direction: column; }
.oc-dsc-dados span { font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: var(--muted); }
.oc-dsc-dados strong { font-size: 13px; color: var(--ink); overflow-wrap: anywhere; }
.oc-dsc-tab { width: 100%; border-collapse: collapse; font-size: 12px; }
.oc-dsc-tab th { text-align: left; font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: #fff; background: var(--navy-800); padding: 7px 8px; }
.oc-dsc-tab td { padding: 7px 8px; border-bottom: 1px solid #E4E7EC; vertical-align: top; color: var(--ink); overflow-wrap: anywhere; }
.oc-dsc-tab td small { display: block; color: var(--body); font-size: 11px; margin-top: 2px; white-space: pre-line; }
.oc-dsc-tab .oc-dsc-n { width: 34px; text-align: center; color: var(--muted); }
.oc-dsc-tab .oc-dsc-q { text-align: right; font-variant-numeric: tabular-nums; font-weight: 700; }
.oc-dsc-catrow td { background: #F2F4F7; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--orange); padding: 5px 8px; }
.oc-dsc-total { font-size: 11.5px; color: var(--muted); text-align: right; margin: 6px 0 14px; }
.oc-dsc-obs h3 { font-family: var(--font-ui); font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: var(--orange); margin: 0 0 6px; }
.oc-dsc-obs p { margin: 0; font-size: 12.5px; color: var(--ink); white-space: pre-line; overflow-wrap: anywhere; }
.oc-dsc-linhas i { display: block; height: 22px; border-bottom: 1px solid #D0D5DD; }
.oc-dsc-assina { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; margin-top: 40px; }
.oc-dsc-assina div { display: flex; flex-direction: column; align-items: center; text-align: center; font-size: 12px; color: var(--ink); }
.oc-dsc-assina i { display: block; width: 100%; border-top: 1px solid var(--ink); margin-bottom: 5px; }
.oc-dsc-assina small { color: var(--muted); font-size: 10.5px; }

/* ---------- janelas ---------- */
body.oc-modal-aberto { overflow: hidden; }
.oc-modal { position: fixed; inset: 0; z-index: 500; background: rgba(12,21,37,.55); display: flex; align-items: flex-start; justify-content: center;
  padding: 32px 16px; overflow-y: auto; -webkit-overflow-scrolling: touch; }
.oc-modal-card { width: 100%; max-width: 780px; background: var(--bg-surface); border-radius: 14px; box-shadow: 0 24px 60px rgba(0,0,0,.3); overflow: hidden; margin: 0 auto; }
.oc-modal-card > .sc-head { position: sticky; top: 0; z-index: 1; }
.oc-modal-card > .sc-head h2 { display: flex; align-items: center; gap: 6px; }
.oc-x { background: none; border: 0; color: #fff; font-size: 28px; line-height: 1; cursor: pointer; padding: 0 4px; font-family: var(--font-ui); }
.oc-x:hover { color: var(--orange); }
.oc-modal-acoes { margin: 16px 0 0; }
.oc-modal .rd-check { margin-bottom: 0; }
.oc-modal .rd-check input, .oc-rel-lado .rd-check input { accent-color: var(--orange); width: 16px; height: 16px; }
.oc-modal textarea { min-height: 60px; }
@media (max-width: 480px) {
  .oc-modal { padding: 8px 6px; }
  .oc-modal .sc-body { padding: 14px; }
  .oc-modal-acoes .btn { flex: 1 1 100%; min-width: 0; }
}
.oc-foto-row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 10px; }
.oc-foto-prev { width: 72px; height: 72px; border-radius: 10px; border: 1px solid var(--border); background: var(--bg-zebra); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.oc-foto-prev img { width: 100%; height: 100%; object-fit: cover; }
.oc-foto-prev .av-ic { width: 34px; height: 34px; opacity: .7; }
.oc-foto-row .btn { white-space: normal; text-align: left; line-height: 1.3; }
.oc-foto-row .av-ic { width: 18px; height: 18px; }

/* biblioteca */
.oc-bib { display: flex; flex-direction: column; gap: 6px; margin-top: 12px; max-height: 60vh; overflow-y: auto; }
.oc-bib-it { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 12px; align-items: center; text-align: left; border: 1px solid var(--border);
  border-radius: 10px; background: var(--bg-surface); padding: 8px 10px; cursor: pointer; font-family: var(--font-ui); }
.oc-bib-it:hover { border-color: var(--orange-border); background: var(--orange-light); }
.oc-bib-it .oc-item-foto { width: 48px; height: 48px; }
.oc-bib-txt { display: flex; flex-direction: column; font-size: 13px; color: var(--ink); overflow-wrap: anywhere; }
.oc-bib-txt small { color: var(--muted); font-size: 12px; }
.oc-bib-preco { font-weight: 700; color: var(--navy-800); font-size: 13px; white-space: nowrap; }
@media (max-width: 480px) {
  .oc-bib-it { grid-template-columns: 44px minmax(0, 1fr); }
  .oc-bib-preco { grid-column: 2; }
}

/* leitura com IA */
.oc-lendo { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 40px 10px; text-align: center; color: var(--body); }
.oc-ia-cab, .oc-ia-row { display: grid; grid-template-columns: 24px minmax(0, 2.4fr) 64px 64px minmax(0, 1.3fr) minmax(0, 1.4fr) 28px; gap: 6px; align-items: center; }
.oc-ia-cab { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); padding: 4px 0; }
.oc-ia-row { padding: 5px 0; border-bottom: 1px dashed var(--border); }
.oc-ia-row input[type=text], .oc-ia-row select { padding: 6px 7px; font-size: 12.5px; }
.oc-ia-row .ig { padding: 0 7px; }
.oc-ia-row .ig input { padding: 6px 0; }
.oc-ia-off > :not(.oc-ia-inc):not(.oc-ia-x) { opacity: .45; }
.oc-ia-inc { display: flex; justify-content: center; }
.oc-ia-inc input { width: 16px; height: 16px; accent-color: var(--orange); }
.oc-ia-x { width: 26px; height: 26px; border-radius: 50%; border: 1px solid var(--border); background: #fff; color: #B42318; font-size: 16px; line-height: 1; cursor: pointer; padding: 0; }
.oc-ia-pe { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; margin-top: 8px; font-size: 13px; }
.oc-ia-pe .btn-add { width: auto; margin: 0; }
@media (max-width: 700px) {
  .oc-ia-cab { display: none; }
  .oc-ia-row { grid-template-columns: 24px minmax(0, 1fr) minmax(0, 1fr) 28px;
    grid-template-areas: "inc desc desc x" ". qtd un ." ". val val ." ". sel sel ."; padding: 10px 0; }
  .oc-ia-row > :nth-child(1) { grid-area: inc; }
  .oc-ia-row > :nth-child(2) { grid-area: desc; }
  .oc-ia-row > :nth-child(3) { grid-area: qtd; }
  .oc-ia-row > :nth-child(4) { grid-area: un; }
  .oc-ia-row > :nth-child(5) { grid-area: val; }
  .oc-ia-row > :nth-child(6) { grid-area: sel; }
  .oc-ia-row > :nth-child(7) { grid-area: x; }
}

/* pedido: escolha dos itens */
.oc-ped-sel { display: flex; flex-direction: column; gap: 6px; }
.oc-ped-selit { display: grid; grid-template-columns: minmax(0, 1fr) 150px; gap: 8px; align-items: center; padding: 8px 10px; border: 1px solid var(--border); border-radius: 10px; }
.oc-ped-selit.on { border-color: var(--orange-border); background: var(--orange-light); }
.oc-ped-selit label { display: flex; gap: 8px; align-items: flex-start; cursor: pointer; font-size: 13px; text-transform: none; letter-spacing: 0; color: var(--ink); font-weight: 500; }
.oc-ped-selit label input { width: 16px; height: 16px; margin-top: 2px; accent-color: var(--orange); flex: 0 0 auto; }
.oc-ped-selit label span { display: flex; flex-direction: column; overflow-wrap: anywhere; }
.oc-ped-selit label small { color: var(--muted); font-size: 11.5px; }
.oc-ped-total { margin-top: 8px; font-size: 13px; color: var(--body); text-align: right; }
.oc-ped-total strong { color: var(--navy-800); font-size: 16px; }
@media (max-width: 480px) { .oc-ped-selit { grid-template-columns: minmax(0, 1fr); } }

/* ---------- relatório (tela) ---------- */
.oc-rel-grid { display: grid; grid-template-columns: minmax(0, 360px) minmax(0, 1fr); gap: 18px; align-items: start; }
@media (max-width: 1100px) { .oc-rel-grid { grid-template-columns: minmax(0, 1fr); } }
.oc-rel-lado .field textarea { font-size: 13px; }
.oc-rel-lado .rd-acoes { margin: 14px 0 4px; }
.oc-rel-lado .rd-acoes .btn { flex: 1 1 auto; min-width: 0; }
.oc-rel-lado .av-ic { width: 18px; height: 18px; }
.oc-portal { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--border); display: flex; flex-direction: column; gap: 6px; font-size: 12.5px; color: var(--body); }
.oc-portal > .btn { align-self: flex-start; }
.oc-portal-row { display: flex; gap: 6px; align-items: flex-start; }
/* o link inteiro, quebrando linha; um clique seleciona tudo */
.oc-portal-link { flex: 1 1 auto; min-width: 0; font-size: 12px; line-height: 1.45; color: var(--ink); padding: 7px 9px; border: 1px solid var(--border);
  border-radius: 8px; background: var(--bg-zebra); overflow-wrap: anywhere; word-break: break-all; user-select: all; -webkit-user-select: all; cursor: text; }
/* "Copiar" não divide a palavra ("COPI AR") */
.oc-portal-row .btn { flex: 0 0 auto; overflow-wrap: normal; word-break: normal; white-space: nowrap; }
.oc-horas-form { display: grid; grid-template-columns: minmax(0, 1fr) 90px; gap: 10px; margin-bottom: 10px; }
.oc-horas-form .btn { min-width: 0; }
.oc-custo-h { background: var(--bg-zebra); border-radius: 8px; padding: 8px 10px; margin-top: 10px; }

/* ---------- o relatório (tela e impressão) ---------- */
.oc-rel { background: #fff; border: 1px solid var(--border); border-radius: 14px; box-shadow: var(--sh-card); overflow: hidden; color: var(--body);
  font-family: var(--font-ui); -webkit-print-color-adjust: exact; print-color-adjust: exact; container: ocrel / inline-size; }
.oc-rel-cab { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; justify-content: space-between; padding: 26px 30px;
  background: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px),
  linear-gradient(135deg, var(--navy-950), var(--navy-800)); background-size: 26px 26px, 26px 26px, auto; border-bottom: 4px solid var(--orange); }
.oc-rel-logo { display: inline-flex; align-items: center; background: #fff; border-radius: 10px; padding: 8px 12px; }
.oc-rel-logo img { max-height: 50px; max-width: 190px; object-fit: contain; display: block; }
.oc-rel-empresa { font-family: var(--font-title); font-size: 24px; color: #fff; font-weight: 700; }
.oc-rel-tit { display: flex; flex-direction: column; align-items: flex-end; text-align: right; }
.oc-rel-tit span { font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .16em; color: #F3A56B; }
.oc-rel-tit strong { font-family: var(--font-title); font-size: 28px; color: #fff; line-height: 1.15; }
.oc-rel-proj { display: flex; flex-wrap: wrap; gap: 8px 28px; padding: 14px 30px; background: var(--bg-zebra); border-bottom: 1px solid var(--border); }
.oc-rel-proj div { display: flex; flex-direction: column; }
.oc-rel-proj span { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: var(--muted); }
.oc-rel-proj strong { font-size: 14px; color: var(--ink); overflow-wrap: anywhere; }
.oc-rel-resumo { margin: 0; padding: 22px 30px 6px; font-size: 15px; line-height: 1.65; color: var(--ink); white-space: pre-line; overflow-wrap: anywhere; }
.oc-rel-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; padding: 16px 30px; }
.oc-rel-kpi { display: flex; flex-direction: column; gap: 2px; border: 1px solid var(--border); border-radius: 12px; padding: 12px 14px; background: #fff; }
.oc-rel-kpi span { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); }
.oc-rel-kpi strong { font-size: 22px; color: var(--navy-800); font-variant-numeric: tabular-nums; line-height: 1.2; white-space: nowrap; }
@container ocrel (max-width: 780px) { .oc-rel-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.oc-rel-kpi small { font-size: 11.5px; color: var(--muted); }
.oc-rel-kpi-eco { background: #F6FEF9; border-color: #ABE5BF; }
.oc-rel-kpi-eco strong { color: #067647; }
.oc-rel-kpi-acum { background: linear-gradient(135deg, var(--navy-950), var(--navy-800)); border-color: var(--navy-800); }
.oc-rel-kpi-acum span, .oc-rel-kpi-acum small { color: rgba(255,255,255,.7); }
.oc-rel-kpi-acum strong { color: #F3A56B; }
.oc-rel-and { padding: 0 30px 8px; }
.oc-rel-and-txt { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; font-size: 12px; margin-bottom: 6px; }
.oc-rel-and-txt span { font-weight: 700; text-transform: uppercase; letter-spacing: .1em; font-size: 10px; color: var(--muted); }
.oc-rel-and-txt strong { color: var(--ink); font-weight: 600; }
.oc-rel-bar { height: 8px; border-radius: 8px; background: #EEF0F5; overflow: hidden; }
.oc-rel-bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--orange), #F3A56B); border-radius: 8px; }
.oc-rel-sec { padding: 14px 30px 4px; }
.oc-rel-sec h3 { font-family: var(--font-ui); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .14em; color: var(--orange);
  padding-bottom: 6px; margin-bottom: 8px; border-bottom: 1px solid var(--border); }
.oc-rel-nada { font-size: 13px; color: var(--muted); margin: 4px 0 8px; }
.oc-rel-nota { font-size: 12px; color: var(--muted); margin: 8px 0; }
.oc-rel-total-h { text-align: right; font-size: 13px; margin: 6px 0; color: var(--body); }
.oc-rel-total-h strong { color: var(--navy-800); }
.oc-rel-lista { margin: 4px 0 8px 18px; padding: 0; font-size: 13px; color: var(--ink); line-height: 1.55; }
.oc-rel-lista li { margin-bottom: 4px; overflow-wrap: anywhere; }
.oc-rel-lista li::marker { color: var(--orange); }
.oc-rt { width: 100%; border-collapse: collapse; font-size: 12.5px; margin-bottom: 6px; }
.oc-rt th { text-align: left; font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); padding: 6px 8px; border-bottom: 1.5px solid var(--navy-800); }
.oc-rt td { padding: 8px; border-bottom: 1px solid #EEF0F5; vertical-align: top; color: var(--ink); overflow-wrap: break-word; }
.oc-rt tr:last-child td { border-bottom: 0; }
.oc-rt td small { display: block; color: var(--muted); font-size: 11px; }
.oc-rt th:nth-child(n+4), .oc-rt td:nth-child(n+4) { text-align: right; white-space: nowrap; }
.oc-rel-eco { color: #067647; font-weight: 700; }
.oc-rel-acima { color: #B42318; font-weight: 600; }
.oc-rel-neutro { color: var(--muted); }
.oc-rel-rodape { margin-top: 14px; padding: 18px 30px 22px; background: var(--bg-zebra); border-top: 1px solid var(--border); font-size: 12px; color: var(--body); }
.oc-rel-rodape p { margin: 0 0 10px; line-height: 1.55; }
.oc-rel-rodape p strong { color: var(--ink); }
.oc-rel-assina { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 16px; padding-top: 10px; border-top: 1px solid var(--border); overflow-wrap: anywhere; }
.oc-rel-assina strong { color: var(--ink); }
@media (max-width: 600px) {
  .oc-rel-cab { padding: 18px; }
  .oc-rel-tit { align-items: flex-start; text-align: left; }
  .oc-rel-tit strong { font-size: 22px; }
  .oc-rel-proj, .oc-rel-and, .oc-rel-sec, .oc-rel-rodape { padding-left: 18px; padding-right: 18px; }
  .oc-rel-resumo { padding: 18px 18px 4px; font-size: 14px; }
  .oc-rel-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 14px 18px; }
  .oc-rel-kpi strong { font-size: 16px; }
  .oc-rt, .oc-rt tbody { display: block; }
  .oc-rt thead { display: none; }
  .oc-rt tr { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2px 12px; padding: 8px 0; border-bottom: 1px solid #EEF0F5; }
  .oc-rt td { display: flex; flex-direction: column; padding: 0; border: 0; text-align: left !important; white-space: normal !important; }
  .oc-rt td:first-child { grid-column: 1 / -1; }
  .oc-rt td::before { content: attr(data-l); font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); }
  .oc-rt td:first-child::before { display: none; }
}

/* ---------- impressão: só o relatório ---------- */
#ocPrint { display: none; }
@media print {
  body.oc-imprimindo { display: block !important; background: #fff !important; }
  body.oc-imprimindo > *:not(#ocPrint) { display: none !important; }
  body.oc-imprimindo #ocPrint { display: block !important; }
  body.oc-imprimindo #ocPrint, body.oc-imprimindo #ocPrint * { visibility: visible !important; }
  body.oc-imprimindo #ocPrint .oc-rel { border: 0; border-radius: 0; box-shadow: none; }
  body.oc-imprimindo #ocPrint .oc-rel-kpis, body.oc-imprimindo #ocPrint .oc-rel-cab { break-inside: avoid; }
  body.oc-imprimindo #ocPrint .oc-rel-sec h3 { break-after: avoid; }
  body.oc-imprimindo #ocPrint .oc-rt tr { break-inside: avoid; }
  body.oc-imprimindo #ocPrint .oc-dsc { padding: 0; }
  body.oc-imprimindo #ocPrint .oc-dsc-tab tr, body.oc-imprimindo #ocPrint .oc-dsc-assina, body.oc-imprimindo #ocPrint .oc-dsc-dados { break-inside: avoid; }
  body.oc-imprimindo #ocPrint .oc-dsc-tab thead { display: table-header-group; }
}

/* ---------- pacotes (29/10/2026): seta de abrir e fechar ---------- */
.sc-head:has(> .oc-sc-bts) { flex-wrap: wrap; }
.oc-sc-bts { display: inline-flex; flex-wrap: wrap; gap: 2px 14px; }
.sc-head .oc-sc-bts .oc-lnk { color: #fff; text-decoration-color: rgba(255,255,255,.5); }
.sc-head .oc-sc-bts .oc-lnk:hover { color: #F3A56B; }
.oc-seta { display: inline-flex; align-items: center; gap: 8px; background: none; border: 0; padding: 2px 0; margin: 0; cursor: pointer;
  font-family: var(--font-ui); color: var(--ink); text-align: left; max-width: 100%; }
.oc-seta-ic { width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg);
  flex: 0 0 auto; margin: 0 3px 0 1px; opacity: .65; transition: transform .15s; }
[aria-expanded="true"] > .oc-seta-ic, [aria-expanded="true"] .oc-seta-ic { transform: rotate(45deg); margin-top: -4px; }
.oc-seta .av-ic { width: 24px; height: 24px; flex: 0 0 auto; }
.oc-seta strong { overflow-wrap: anywhere; }
.oc-seta:hover strong { color: var(--orange); }
.oc-seta:focus-visible, .oc-ctl-row:focus-visible { outline: 2px solid var(--orange); outline-offset: 2px; }
.oc-pc-tag { font-style: normal; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #9A4A12;
  background: var(--orange-light); border: 1px solid var(--orange-border); border-radius: 4px; padding: 1px 6px; vertical-align: 1px; }
.oc-pac-esc { margin: 10px 0; padding: 9px 12px; border-left: 3px solid var(--orange); background: #fff; border-radius: 0 8px 8px 0; }
.oc-pac-esc span { display: block; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); }
.oc-pac-esc p { margin: 2px 0 0; font-size: 13px; color: var(--ink); white-space: pre-line; overflow-wrap: anywhere; }

/* planejamento: o pacote abre o escopo, os itens e o cadastro rápido */
.oc-pacb { border-bottom: 1px solid var(--border); }
.oc-pacb:last-child { border-bottom: 0; }
.oc-pacb > .oc-pl-row { border-bottom: 0; }
.oc-pacb.aberto > .oc-pl-row { background: var(--bg-zebra); }
.oc-pacb.aberto .oc-pl-obs { display: none; }
.oc-pl-cat .oc-seta strong { display: inline; font-size: 13.5px; }
.oc-pac-painel { padding: 2px 14px 14px 40px; background: var(--bg-zebra); border-top: 1px dashed var(--border); }
.oc-pac-aviso { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; justify-content: space-between; margin: 10px 0; padding: 10px 12px;
  border: 1px solid var(--orange-border); background: var(--orange-light); border-radius: 10px; font-size: 12.5px; color: var(--ink); }
.oc-pac-aviso span { flex: 1 1 260px; overflow-wrap: anywhere; }
.oc-pq-lista { list-style: none; margin: 8px 0; padding: 0; border: 1px solid var(--border); border-radius: 10px; background: #fff; }
.oc-pq-it { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 4px 14px; align-items: center; padding: 8px 12px; border-bottom: 1px solid var(--border); }
.oc-pq-it:last-child { border-bottom: 0; }
.oc-pq-nome { display: flex; flex-direction: column; font-size: 13px; color: var(--ink); overflow-wrap: anywhere; }
.oc-pq-nome small { color: var(--muted); font-size: 12px; }
.oc-pq-v { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: center; justify-content: flex-end; font-size: 13px; font-variant-numeric: tabular-nums; }
.oc-pq-v strong { color: var(--navy-800); }
.oc-pq-acoes { display: flex; gap: 12px; }
.oc-pq { display: grid; grid-template-columns: minmax(0, 2.4fr) minmax(0, .7fr) minmax(0, .7fr) minmax(0, 1.2fr) minmax(0, 1.3fr) auto; gap: 8px 10px; align-items: end;
  margin-top: 10px; padding: 10px 12px; border: 1px dashed var(--navy-border); border-radius: 10px; background: #fff; }
.oc-pq input[type=text] { padding: 8px 9px; font-size: 13px; width: 100%; }
.oc-pq .ig input[type=text] { padding: 8px 0; }
.oc-pq-b { white-space: normal; line-height: 1.25; }
.oc-pac-pe { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-top: 8px; }
@media (max-width: 1100px) {
  .oc-pq { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .oc-pq-d, .oc-pq-b { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .oc-pac-painel { padding: 2px 10px 12px; }
  .oc-pq-it { grid-template-columns: minmax(0, 1fr); }
  .oc-pq-v { justify-content: flex-start; }
}

/* controle de orçamentos por pacote: uma linha por pacote, que abre os itens */
.oc-ctl .oc-tot-row { grid-template-columns: minmax(0, 1.7fr) repeat(6, minmax(0, 1fr)); }
.oc-ctl-pac { border-bottom: 1px solid var(--border); }
.oc-ctl-row { width: 100%; border: 0; border-bottom: 0 !important; background: var(--bg-surface); font-family: var(--font-ui); text-align: left; cursor: pointer; }
.oc-ctl-row:hover { background: var(--orange-light); }
.oc-ctl-pac.aberto > .oc-ctl-row { background: var(--bg-zebra); }
.oc-ctl-row .oc-tot-cat { display: flex; align-items: center; gap: 8px; }
.oc-ctl-row .oc-tot-cat > .av-ic { width: 26px; height: 26px; flex: 0 0 auto; }
.oc-ctl-nome { display: flex; flex-direction: column; min-width: 0; overflow-wrap: anywhere; }
.oc-ctl-nome strong { color: var(--ink); }
.oc-ctl-nome .oc-badge-alto { align-self: flex-start; margin-top: 2px; }
.oc-ctl-row em, .oc-ctl .oc-tot-total em { font-style: normal; color: var(--muted); font-size: 12px; font-weight: 500; }
.oc-ctl-itens { padding: 2px 14px 12px; border-top: 1px dashed var(--border); border-left: 3px solid var(--orange); background: var(--bg-surface); }
.oc-ctl-itens > .oc-item:last-of-type { border-bottom: 0; }
.oc-ctl-itens > .rd-dica { margin: 10px 0 0; }
.oc-ctl-pe { padding: 10px 0 0; }
@media (max-width: 1180px) {
  .oc-ctl .oc-tot-h { display: none; }
  .oc-ctl .oc-tot-row { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px 14px; }
  .oc-ctl .oc-tot-cat { grid-column: 1 / -1; }
  .oc-ctl .oc-tot-row > span[data-l] { display: flex; flex-direction: column; text-align: left; white-space: normal; font-size: 12.5px; }
  .oc-ctl .oc-tot-row > span[data-l]::before { content: attr(data-l); color: var(--muted); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
}
@media (max-width: 640px) {
  .oc-ctl .oc-tot-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .oc-ctl-itens { padding: 2px 10px 10px; }
}

/* cotação por pacote, na ordem de "Comprar até" */
.oc-cpac-res { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: center; margin: 0 0 12px; font-size: 13px; color: var(--body); }
.oc-cpac-res .oc-sc-bts { margin-left: auto; }
.oc-cpac { padding: 14px 16px; }
.oc-cpac-atr { border-left: 4px solid #F04438; }
.oc-cpac-cab { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; justify-content: space-between; }
.oc-cpac-cab .oc-seta strong { font-size: 15px; }
.oc-cpac-st { font-size: 11.5px; font-weight: 700; border-radius: 20px; padding: 2px 10px; background: var(--navy-100); color: var(--navy-700); }
.oc-cpac-st-ok { background: #E7F6EC; color: #067647; }
.oc-cpac-st-comp { background: #EEF4FF; color: #3538CD; }
.oc-cpac-st-agu { background: var(--orange-light); color: #9A4A12; }
.oc-cpac-st-sem, .oc-cpac-st-vazio { background: #F2F4F7; color: #475467; }
.oc-cpac-meta, .oc-cpac-peds, .oc-cpac-acoes, .oc-cpac-its { margin-left: 30px; }
.oc-cpac-meta { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-top: 8px; font-size: 12.5px; color: var(--body); }
.oc-cpac-meta strong { color: var(--ink); }
.oc-cpac-peds { display: flex; align-items: center; gap: 6px; margin-top: 8px; margin-bottom: 0; font-size: 12.5px; color: var(--body); }
.oc-cpac-peds .av-ic { width: 15px; height: 15px; flex: 0 0 auto; }
.oc-cpac-acoes { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.oc-cpac-acoes .av-ic { width: 16px; height: 16px; }
.oc-cpac-its { margin-top: 12px; }
.oc-cpac-lista { list-style: none; margin: 0; padding: 0; border: 1px solid var(--border); border-radius: 10px; }
.oc-cpac-it { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto; gap: 4px 14px; align-items: center; padding: 8px 12px; border-bottom: 1px solid var(--border); font-size: 13px; }
.oc-cpac-it:last-child { border-bottom: 0; }
.oc-cpac-it-nome { display: flex; flex-direction: column; overflow-wrap: anywhere; color: var(--ink); }
.oc-cpac-it-nome small { color: var(--muted); font-size: 12px; }
.oc-cpac-it-cot { font-size: 12.5px; color: var(--body); overflow-wrap: anywhere; }
.oc-cpac-it-cot .oc-b-esc { font-size: 9.5px; margin-right: 4px; }
.oc-cfora { margin-top: 4px; }
@media (max-width: 640px) {
  .oc-cpac { padding: 12px; }
  .oc-cpac-meta, .oc-cpac-peds, .oc-cpac-acoes, .oc-cpac-its { margin-left: 0; }
  .oc-cpac-it { grid-template-columns: minmax(0, 1fr); }
  .oc-cpac-acoes .btn { flex: 1 1 100%; }
  .oc-cpac-res .oc-sc-bts { margin-left: 0; }
}

/* desmembrar o pacote completo em itens */
.oc-dm-row { display: grid; grid-template-columns: 76px 76px minmax(0, 1fr) minmax(0, 1fr) 28px; grid-template-areas: "desc desc desc desc x" "q u a v .";
  gap: 8px; align-items: end; padding: 10px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg-zebra); }
.oc-dm-row input[type=text] { padding: 7px 8px; font-size: 12.5px; width: 100%; }
.oc-dm-desc { grid-area: desc; font-weight: 600; }
.oc-dm-q { grid-area: q; } .oc-dm-u { grid-area: u; } .oc-dm-a { grid-area: a; } .oc-dm-v { grid-area: v; }
.oc-dm-x { grid-area: x; align-self: center; }
.oc-dm-v .ig { padding: 0 8px; background: #fff; }
.oc-dm-v .ig input[type=text] { padding: 7px 0; }
@media (max-width: 600px) {
  .oc-dm-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 28px; grid-template-areas: "desc desc x" "q u ." "a a a" "v v v"; }
}

/* fornecedores em planilha: rola dentro da caixa, cabeçalho e nome parados */
.oc-ft-wrap { max-width: 100%; max-height: min(72vh, 760px); overflow: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--border);
  border-radius: 12px; background: var(--bg-surface); box-shadow: var(--sh-card); }
.oc-ft-wrap:focus-visible { outline: 2px solid var(--orange); outline-offset: 2px; }
.oc-ft { width: 100%; min-width: 960px; border-collapse: separate; border-spacing: 0; font-size: 12.5px; color: var(--body); }
.oc-ft th, .oc-ft td { padding: 9px 10px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--border); background: var(--bg-surface); overflow-wrap: anywhere; }
.oc-ft thead th { position: sticky; top: 0; z-index: 2; background: var(--navy-800); color: #fff; padding: 0; border-bottom: 0; font-size: 10.5px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .08em; vertical-align: bottom; }
.oc-ft thead th.oc-ft-ac { padding: 10px 10px; color: rgba(255,255,255,.8); }
.oc-ft-ord { display: flex; align-items: center; gap: 6px; width: 100%; padding: 10px 10px; background: none; border: 0; color: rgba(255,255,255,.82); font: inherit;
  text-transform: inherit; letter-spacing: inherit; text-align: left; cursor: pointer; }
.oc-ft-ord:hover, .oc-ft-ord.on { color: #fff; }
.oc-ft-ord:focus-visible { outline: 2px solid var(--orange); outline-offset: -2px; }
.oc-ft-seta { width: 0; height: 0; border-left: 4px solid transparent; border-right: 4px solid transparent; border-bottom: 5px solid currentColor; opacity: .3; flex: 0 0 auto; }
.oc-ft-ord.on .oc-ft-seta { opacity: 1; }
.oc-ft-seta.desc { transform: rotate(180deg); }
.oc-ft .oc-ft-nome { position: sticky; left: 0; z-index: 1; min-width: 170px; max-width: 230px; box-shadow: 1px 0 0 var(--border); }
.oc-ft thead .oc-ft-nome { z-index: 3; }
.oc-ft tr > :nth-child(2) { min-width: 115px; }
.oc-ft tr > :nth-child(3) { min-width: 95px; }
.oc-ft tr > :nth-child(4) { min-width: 120px; }
.oc-ft tr > :nth-child(5) { min-width: 160px; }
.oc-ft tr > :nth-child(6) { min-width: 100px; }
.oc-ft tr > :nth-child(7) { min-width: 140px; }
.oc-ft tr > :nth-child(8) { min-width: 80px; }
.oc-ft-abre { display: block; background: none; border: 0; padding: 0; font-family: var(--font-ui); font-size: 13.5px; font-weight: 700; color: var(--ink);
  text-align: left; cursor: pointer; overflow-wrap: anywhere; }
.oc-ft-abre:hover { color: var(--orange); }
.oc-ft-nome small { display: block; margin-top: 2px; font-size: 11.5px; font-weight: 500; color: var(--muted); }
.oc-ft-nome .oc-forn-av { display: flex; margin-top: 4px; }
.oc-ft-row { cursor: pointer; }
.oc-ft-row:hover > * { background: #FDF6F0; }
.oc-ft tbody tr:last-child > * { border-bottom: 0; }
.oc-ft td a { color: var(--navy-700); font-weight: 600; }
.oc-ft-portal { display: flex; flex-wrap: wrap; gap: 3px 8px; align-items: center; }
.oc-ft-portal small { font-size: 11.5px; color: var(--muted); }
.oc-ft-pbts { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; }
.oc-ft-pbts:empty { display: none; }
.oc-ft-pbts .oc-mini { padding: 3px 10px; font-size: 11px; }
.oc-ft-acoes { display: flex; flex-wrap: wrap; gap: 2px 12px; }
@media (max-width: 640px) {
  .oc-ft .oc-ft-nome { min-width: 132px; max-width: 150px; }
}
