/* ═══════════════════════════════════════════
   Orçamento de Adesivo — CSS
   ═══════════════════════════════════════════ */

.oa-wrap { font-family:'Segoe UI',Arial,sans-serif; max-width:900px; margin:0 auto; padding:0 0 40px; }
.oa-painel { max-width:1200px; }

/* HEADER */
.oa-header { background:linear-gradient(135deg,#7b1fa2 0%,#ab47bc 100%); border-radius:14px; padding:26px 30px; color:#fff; margin-bottom:24px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.oa-header h2 { margin:6px 0 4px; font-size:22px; font-weight:700; }
.oa-header p  { margin:0; opacity:.85; font-size:13px; }
.oa-badge { background:rgba(255,255,255,.2); border-radius:20px; padding:3px 12px; font-size:10px; font-weight:700; letter-spacing:2px; }
.oa-admin-badge { background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.4); border-radius:20px; padding:5px 14px; font-size:11px; font-weight:700; letter-spacing:1px; }

/* STEPS */
.oa-steps { display:flex; align-items:center; justify-content:center; gap:0; margin-bottom:28px; flex-wrap:wrap; }
.oa-step { display:flex; flex-direction:column; align-items:center; gap:4px; }
.oa-step-num { width:36px; height:36px; border-radius:50%; background:#e0e0e0; color:#888; font-weight:700; font-size:14px; display:flex; align-items:center; justify-content:center; transition:all .3s; }
.oa-step-label { font-size:11px; color:#aaa; font-weight:600; transition:all .3s; }
.oa-step.active .oa-step-num { background:#7b1fa2; color:#fff; box-shadow:0 2px 10px rgba(123,31,162,.4); }
.oa-step.active .oa-step-label { color:#7b1fa2; }
.oa-step.done .oa-step-num { background:#1a7a4a; color:#fff; }
.oa-step.done .oa-step-label { color:#1a7a4a; }
.oa-step-line { width:40px; height:2px; background:#e0e0e0; margin-bottom:16px; transition:background .3s; }
.oa-step-line.done { background:#1a7a4a; }

/* SECTIONS */
.oa-section { background:#fff; border-radius:14px; padding:26px 28px; box-shadow:0 2px 16px rgba(0,0,0,.07); margin-bottom:16px; }
.oa-hidden  { display:none; }
.oa-section-title { font-size:16px; font-weight:700; color:#7b1fa2; border-left:4px solid #ab47bc; padding-left:12px; margin-bottom:20px; }

/* FORMS */
.oa-form-row   { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:14px; }
.oa-form-group { flex:1 1 180px; display:flex; flex-direction:column; gap:5px; }
.oa-form-full  { flex:1 1 100%; }
.oa-form-group label { font-size:12px; font-weight:700; color:#7b1fa2; letter-spacing:.3px; }
.oa-form-group input,
.oa-form-group select,
.oa-form-group textarea { padding:9px 13px; border-radius:8px; border:1.5px solid #ccc; font-size:13px; font-family:inherit; outline:none; transition:border-color .2s; }
.oa-form-group input:focus,
.oa-form-group select:focus { border-color:#7b1fa2; }
.oa-hint { color:#888; font-size:13px; margin-bottom:16px; }

/* STAND INFO */
.oa-stand-info { background:#f3e5f5; border:1px solid #ce93d8; border-radius:10px; padding:14px 18px; margin-bottom:18px; font-size:14px; color:#4a148c; font-weight:600; }

/* CONFIG BUTTONS */
.oa-config-btns { display:flex; gap:12px; flex-wrap:wrap; }
.oa-config-btn  { flex:1 1 140px; background:#f8f4fc; border:2px solid #e0d0ee; border-radius:12px; padding:16px 12px; text-align:center; cursor:pointer; transition:all .2s; display:flex; flex-direction:column; align-items:center; gap:6px; }
.oa-config-btn:hover  { border-color:#ab47bc; background:#f3e5f5; }
.oa-config-btn.active { border-color:#7b1fa2; background:#f3e5f5; box-shadow:0 2px 10px rgba(123,31,162,.2); }
.oa-config-btn .oa-config-icon { font-size:26px; }
.oa-config-btn strong { font-size:14px; color:#4a148c; }
.oa-config-btn small  { font-size:11px; color:#888; }

/* ITENS GRID */
.oa-itens-grid { display:flex; flex-direction:column; gap:10px; margin-bottom:20px; }
.oa-item-card  { display:flex; align-items:center; gap:14px; background:#faf5ff; border:2px solid #e8d5f5; border-radius:10px; padding:14px 16px; cursor:pointer; transition:all .2s; }
.oa-item-card:hover  { border-color:#ab47bc; }
.oa-item-card.selected { border-color:#7b1fa2; background:#f3e5f5; }
.oa-item-check { width:22px; height:22px; border-radius:6px; border:2px solid #ccc; background:#fff; display:flex; align-items:center; justify-content:center; font-size:14px; transition:all .2s; flex-shrink:0; }
.oa-item-card.selected .oa-item-check { background:#7b1fa2; border-color:#7b1fa2; color:#fff; }
.oa-item-info  { flex:1; }
.oa-item-label { font-weight:700; color:#4a148c; font-size:14px; }
.oa-item-dim   { font-size:12px; color:#888; margin-top:2px; }
.oa-item-m2    { font-size:13px; color:#7b1fa2; font-weight:700; white-space:nowrap; }

/* PREVIEW */
.oa-preview { background:#faf5ff; border:1px solid #ce93d8; border-radius:12px; padding:18px 20px; margin-top:16px; }
.oa-preview-title { font-weight:700; color:#4a148c; margin-bottom:12px; font-size:14px; }
.oa-preview-itens { margin-bottom:12px; }
.oa-preview-item  { display:flex; justify-content:space-between; font-size:12px; color:#555; padding:3px 0; }
.oa-preview-total { border-top:1px solid #ddd; padding-top:10px; }
.oa-preview-linha { display:flex; justify-content:space-between; font-size:13px; padding:4px 0; color:#333; }
.oa-preview-total-linha { font-weight:800; color:#4a148c; font-size:16px; border-top:2px solid #7b1fa2; margin-top:6px; padding-top:6px; }

/* RESUMO FINAL */
.oa-resumo-final { background:#f8f9fa; border-radius:12px; padding:20px; margin-bottom:16px; }
.oa-resumo-empresa { font-size:18px; font-weight:700; color:#4a148c; margin-bottom:4px; }
.oa-resumo-sub     { font-size:13px; color:#666; margin-bottom:14px; }
.oa-resumo-grid    { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:16px; }
.oa-resumo-item    { background:#fff; border-radius:8px; padding:10px 14px; border:1px solid #eee; }
.oa-resumo-item-label { font-size:11px; color:#888; font-weight:600; }
.oa-resumo-item-val   { font-size:14px; font-weight:700; color:#333; margin-top:2px; }
.oa-resumo-total   { background:linear-gradient(135deg,#7b1fa2,#ab47bc); color:#fff; border-radius:10px; padding:16px 20px; text-align:center; }
.oa-resumo-total-label { font-size:12px; opacity:.85; margin-bottom:4px; }
.oa-resumo-total-val   { font-size:28px; font-weight:800; }

/* AVISO */
.oa-aviso { background:#fff8e1; border:1px solid #ffd54f; border-radius:8px; padding:12px 16px; font-size:13px; color:#5d4037; margin-bottom:16px; }

/* SUCESSO */
.oa-sucesso { text-align:center; padding:30px 20px; }
.oa-sucesso-icon { font-size:56px; margin-bottom:12px; }
.oa-sucesso h3   { font-size:22px; color:#1a7a4a; margin-bottom:8px; }
.oa-sucesso p    { color:#555; font-size:14px; }
.oa-btn-novo     { background:#7b1fa2; color:#fff; border:none; padding:10px 28px; border-radius:8px; font-weight:700; cursor:pointer; margin-top:16px; }

/* BOTÕES */
.oa-actions { display:flex; gap:10px; justify-content:flex-end; margin-top:20px; }
.oa-btn-back     { background:#e0e0e0; color:#333; border:none; padding:10px 22px; border-radius:8px; font-weight:600; cursor:pointer; }
.oa-btn-next     { background:#7b1fa2; color:#fff; border:none; padding:10px 24px; border-radius:8px; font-weight:700; cursor:pointer; transition:opacity .2s; }
.oa-btn-next:hover { opacity:.88; }
.oa-btn-confirmar{ background:linear-gradient(135deg,#1a3c5e,#1f6faf); color:#fff; border:none; padding:12px 28px; border-radius:8px; font-weight:700; font-size:15px; cursor:pointer; transition:opacity .2s; }
.oa-btn-confirmar:hover { opacity:.88; }

/* FORM MSG */
.oa-form-msg { padding:10px 16px; border-radius:8px; font-size:13px; font-weight:600; margin-top:10px; }
.oa-form-msg.erro    { background:#fdecea; color:#c0392b; border:1px solid #c0392b; }
.oa-form-msg.sucesso { background:#d6f0e4; color:#1a7a4a; border:1px solid #1a7a4a; }

/* ── PAINEL ADMIN ── */
.oa-cards { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:24px; }
.oa-card  { flex:1 1 110px; border-radius:12px; padding:14px 16px; text-align:center; border:2px solid; }
.oa-card-label { display:block; font-size:9px; font-weight:700; letter-spacing:1px; margin-bottom:3px; }
.oa-card-num   { display:block; font-size:26px; font-weight:800; line-height:1.1; }
.oa-card-total   { background:#f3e5f5; border-color:#7b1fa2; color:#7b1fa2; }
.oa-card-pendente{ background:#fff8e1; border-color:#f9a825; color:#f9a825; }
.oa-card-aprovado{ background:#d6f0e4; border-color:#1a7a4a; color:#1a7a4a; }
.oa-card-prod    { background:#e3f2fd; border-color:#1565c0; color:#1565c0; }
.oa-card-entregue{ background:#d0f0f5; border-color:#0097a7; color:#0097a7; }
.oa-card-receita { background:#fdecea; border-color:#c0392b; color:#c0392b; }

.oa-filtros { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:14px; }
.oa-filtros input { padding:8px 14px; border-radius:8px; border:1.5px solid #ccc; font-size:13px; outline:none; min-width:200px; }
.oa-filtros input:focus { border-color:#7b1fa2; }
.oa-filtro-btns { display:flex; gap:6px; flex-wrap:wrap; }
.oa-filtro-btn { padding:7px 14px; border-radius:8px; border:none; cursor:pointer; font-weight:700; font-size:11px; background:#e8edf4; color:#444; transition:all .15s; }
.oa-filtro-btn.active, .oa-filtro-btn:hover { background:#7b1fa2; color:#fff; }
.oa-count { font-size:12px; color:#888; margin-left:auto; }

.oa-tabela-wrap { overflow-x:auto; border-radius:12px; box-shadow:0 2px 16px rgba(0,0,0,.08); }
.oa-tabela { width:100%; border-collapse:collapse; background:#fff; font-size:12px; }
.oa-tabela thead tr { background:#7b1fa2; color:#fff; }
.oa-tabela thead th { padding:10px 12px; text-align:left; font-size:10px; font-weight:700; letter-spacing:.5px; white-space:nowrap; }
.oa-tabela tbody tr { border-bottom:1px solid #eee; transition:background .2s; }
.oa-tabela td { padding:10px 12px; vertical-align:middle; }

.oa-row-pendente   { background:#fffde7; border-left:4px solid #f9a825; }
.oa-row-aprovado   { background:#d6f0e4; border-left:4px solid #1a7a4a; }
.oa-row-produzindo { background:#e3f2fd; border-left:4px solid #1565c0; }
.oa-row-entregue   { background:#d0f0f5; border-left:4px solid #0097a7; }
.oa-row-cancelado  { background:#f5f5f5; border-left:4px solid #aaa; opacity:.7; }
.oa-row-hidden     { display:none; }

.oa-status-select { border-radius:6px; font-weight:700; font-size:11px; padding:4px 6px; border:1.5px solid #ccc; cursor:pointer; outline:none; }
.oa-obs-input { background:#fffde7; border:1px dashed #ccc; border-radius:5px; padding:4px 8px; font-size:11px; font-family:inherit; width:110px; outline:none; }
.oa-obs-input:focus { border-color:#7b1fa2; background:#fff; border-style:solid; }
.oa-td-acoes { white-space:nowrap; }
.oa-btn-salvar-pedido { background:#d6f0e4; border:none; border-radius:6px; padding:5px 9px; cursor:pointer; font-size:13px; }
.oa-btn-salvar-pedido:hover { opacity:.75; }
.oa-vazio { text-align:center; padding:40px; color:#aaa; font-size:15px; background:#fff; border-radius:12px; }

/* TOAST */
.oa-toast { position:fixed; bottom:28px; right:28px; background:#4a148c; color:#fff; padding:12px 22px; border-radius:10px; font-size:13px; font-weight:600; z-index:999999; box-shadow:0 4px 20px rgba(0,0,0,.2); animation:oa-toast-in .25s ease; }
.oa-toast.sucesso { background:#1a7a4a; }
.oa-toast.erro    { background:#c0392b; }
@keyframes oa-toast-in { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} }

/* SPINNER */
.oa-spinner { display:inline-block; width:14px; height:14px; border:2px solid rgba(255,255,255,.5); border-top-color:#fff; border-radius:50%; animation:oa-spin .6s linear infinite; vertical-align:middle; margin-right:6px; }
@keyframes oa-spin { to{transform:rotate(360deg)} }

@media(max-width:600px){
  .oa-steps { gap:4px; }
  .oa-step-line { width:20px; }
  .oa-config-btns { flex-direction:column; }
  .oa-resumo-grid { grid-template-columns:1fr; }
}

/* ── CARDS FINANCEIROS (admin) ── */
.oa-cards-fin { margin-top:8px; }
.oa-card-custo-ad  { background:#e3f2fd; border-color:#1565c0; color:#1565c0; }
.oa-card-custo-ap  { background:#e8f5e9; border-color:#2e7d32; color:#2e7d32; }
.oa-card-lucro     { background:#d6f0e4; border-color:#1a7a4a; color:#1a7a4a; }
.oa-card-prejuizo  { background:#fdecea; border-color:#c0392b; color:#c0392b; }
.oa-card-sub       { display:block; font-size:9px; opacity:.75; margin-top:3px; font-weight:400; }

/* ── STATUS BADGES (gráfica/aplicador) ── */
.oa-status-badge       { display:inline-block; padding:4px 10px; border-radius:20px; font-size:11px; font-weight:700; white-space:nowrap; }
.oa-badge-aprovado     { background:#d6f0e4; color:#1a7a4a; }
.oa-badge-produzindo   { background:#e3f2fd; color:#1565c0; }
.oa-badge-entregue     { background:#d0f0f5; color:#0097a7; }
.oa-badge-pendente     { background:#fff8e1; color:#f9a825; }
.oa-badge-cancelado    { background:#f5f5f5; color:#aaa; }

/* ── OBS TEXTAREA (admin) ── */
.oa-obs-input { background:#fffde7; border:1px dashed #ccc; border-radius:5px; padding:5px 8px; font-size:11px; font-family:inherit; width:130px; min-height:40px; resize:vertical; outline:none; }
.oa-obs-input:focus { border-color:#7b1fa2; background:#fff; border-style:solid; }

/* ── ITENS PERSONALIZADOS (step 3) ── */
.oa-custom-section { background:#faf5ff; border:1.5px dashed #ce93d8; border-radius:12px; padding:18px 20px; margin-bottom:18px; }
.oa-custom-title   { font-size:13px; font-weight:700; color:#7b1fa2; margin-bottom:12px; }
.oa-custom-item    { background:#fff; border:1.5px solid #e0d0ee; border-radius:10px; padding:12px 14px; margin-bottom:10px; position:relative; }
.oa-custom-fields  { display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; }
.oa-custom-field   { display:flex; flex-direction:column; gap:4px; flex:1 1 160px; }
.oa-custom-field label { font-size:11px; font-weight:700; color:#7b1fa2; }
.oa-custom-field input { padding:7px 10px; border:1.5px solid #ccc; border-radius:7px; font-size:13px; font-family:inherit; outline:none; }
.oa-custom-field input:focus { border-color:#7b1fa2; }
.oa-custom-field-sm  { flex:0 1 90px; }
.oa-custom-field-m2  { flex:0 1 70px; text-align:center; }
.oa-ci-m2-val        { font-size:15px; font-weight:800; color:#7b1fa2; display:block; padding:6px 0; }
.oa-ci-remove        { position:absolute; top:8px; right:10px; background:#fdecea; border:none; border-radius:6px; color:#c0392b; font-size:13px; font-weight:700; cursor:pointer; padding:4px 8px; }
.oa-ci-remove:hover  { background:#c0392b; color:#fff; }
.oa-btn-add-custom   { background:#f3e5f5; border:1.5px solid #ce93d8; border-radius:8px; color:#7b1fa2; font-weight:700; font-size:13px; padding:8px 18px; cursor:pointer; margin-top:4px; }
.oa-btn-add-custom:hover { background:#e8d5f5; }
.oa-preview-item-custom { background:#fdf4ff; border-left:3px solid #ab47bc; padding-left:8px; border-radius:4px; }

/* ── PDF ARTE (admin/aplicador) ── */
.oa-pdf-link        { display:inline-block; background:#e3f2fd; color:#1565c0; font-size:11px; font-weight:700; padding:3px 10px; border-radius:6px; text-decoration:none; margin-bottom:4px; }
.oa-pdf-link:hover  { background:#1565c0; color:#fff; }
.oa-pdf-upload-label{ display:inline-block; background:#f3e5f5; color:#7b1fa2; font-size:11px; font-weight:700; padding:3px 10px; border-radius:6px; cursor:pointer; margin-top:2px; }
.oa-pdf-upload-label:hover { background:#7b1fa2; color:#fff; }
.oa-pdf-status      { display:block; font-size:10px; margin-top:2px; }

/* Aplicador: botão PDF grande */
.oa-pdf-link-grande { display:inline-block; background:linear-gradient(135deg,#1565c0,#1976d2); color:#fff; font-size:12px; font-weight:700; padding:6px 14px; border-radius:8px; text-decoration:none; }
.oa-pdf-link-grande:hover { opacity:.88; }

/* ── NOVOS BADGES DE STATUS ── */
.oa-badge-impresso  { background:#e3f2fd; color:#1565c0; }
.oa-badge-aplicado  { background:#e8f5e9; color:#1b5e20; }

/* ── BOTÕES GRÁFICA / APLICADOR ── */
.oa-btn-marcar { border:none; border-radius:7px; font-size:12px; font-weight:700; padding:6px 12px; cursor:pointer; display:inline-block; transition:.2s; }
.oa-btn-impresso { background:#1565c0; color:#fff; }
.oa-btn-impresso:hover { background:#0d47a1; }
.oa-btn-aplicado { background:#2e7d32; color:#fff; }
.oa-btn-aplicado:hover { background:#1b5e20; }
.oa-btn-marcar:disabled { opacity:.5; cursor:not-allowed; }

/* ── BARRA DE PROGRESSO (admin) ── */
.oa-progresso-wrap    { background:#fff; border:1.5px solid #e0e0e0; border-radius:14px; padding:20px 24px; margin:16px 0; }
.oa-progresso-titulo  { font-size:13px; font-weight:700; color:#1a3c5e; margin-bottom:16px; }
.oa-progresso-titulo small { font-weight:400; color:#888; font-size:11px; }
.oa-progresso-etapas  { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.oa-etapa             { flex:1 1 120px; min-width:100px; }
.oa-etapa-topo        { display:flex; justify-content:space-between; align-items:center; margin-bottom:6px; }
.oa-etapa-label       { font-size:12px; font-weight:700; color:#444; }
.oa-etapa-num         { font-size:18px; font-weight:800; color:#1a3c5e; }
.oa-barra-bg          { background:#f0f0f0; border-radius:8px; height:12px; overflow:hidden; }
.oa-barra-fill        { height:100%; border-radius:8px; transition:width .6s ease; min-width:4px; }
.oa-etapa-pct         { font-size:11px; color:#888; display:block; margin-top:4px; text-align:right; }
.oa-etapa-seta        { font-size:20px; color:#ccc; font-weight:300; align-self:center; padding-bottom:10px; }

.oa-barra-pendente  { background: linear-gradient(90deg,#f59e0b,#fbbf24); }
.oa-barra-aprovado  { background: linear-gradient(90deg,#10b981,#34d399); }
.oa-barra-impresso  { background: linear-gradient(90deg,#3b82f6,#60a5fa); }
.oa-barra-aplicado  { background: linear-gradient(90deg,#8b5cf6,#a78bfa); }

/* ── BOTÃO DESFAZER IMPRESSO ── */
.oa-btn-desfazer-impresso { background:#f59e0b; color:#fff; }
.oa-btn-desfazer-impresso:hover { background:#d97706; }
