/* Módulo Ordem de Serviço */

.badge.os-open{background:#eef4ff;color:#3b6fb5}
.badge.os-progress{background:#fff3dc;color:#ae772b}
.badge.os-wait{background:#fdeae5;color:#b95744}
.badge.os-done{background:#eaf5e3;color:#397c4f}

.os-filters{display:flex;align-items:end;flex-wrap:wrap;gap:12px;margin:0 0 18px}
.os-filters label{display:grid;gap:6px;color:#56846b;font-size:12px;font-weight:700;min-width:0}
.os-filters input,.os-filters select{height:40px;padding:8px 12px;border:1px solid #d7e2d8;border-radius:8px;background:#fff;color:#20352e}
.os-filters .os-filter-search{flex:1 1 260px}
.os-filters .os-filter-date{flex:0 1 160px}
.os-filters button{height:40px}

.os-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:12px;margin:0 0 18px}
.os-stat{background:#fff;border:1px solid #e6ede6;border-radius:13px;padding:13px 15px;display:grid;gap:3px;box-shadow:0 4px 20px #173c2d08;text-align:left;color:inherit}
.os-stat span{color:#7d8e83;font-size:10px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}
.os-stat strong{font:800 22px Manrope,sans-serif;color:#173d2e;letter-spacing:-.03em}
.os-stat.is-active{border-color:#1d5c40;box-shadow:0 0 0 2px #1d5c4022}
.os-table{min-width:940px}
.os-table td .os-client{display:block;font-weight:700;color:#294e36}
.os-table td .os-client-doc{color:#8b9b90;font-size:11px}
.os-table .os-actions{display:inline-flex;gap:6px;white-space:nowrap}
.os-equipment{display:block;color:#294e36;font-weight:600}
.os-equipment small{display:block;color:#8b9b90;font-weight:500}

/* Diálogo de cadastro */
.os-dialog{width:min(1100px,calc(100% - 24px));max-height:92vh;padding:0;border:0;border-radius:16px;
  box-shadow:0 24px 70px #102a2059;overflow:hidden;display:flex;flex-direction:column;color:#20352e}
.os-dialog::backdrop{background:#142c23b8}
.os-dialog-head{display:flex;justify-content:space-between;align-items:center;gap:14px;
  padding:20px 24px;border-bottom:1px solid #e7ede6;background:linear-gradient(180deg,#fbfdfb,#fff)}
.os-dialog-head h2{margin:0;font:800 20px Manrope,sans-serif;letter-spacing:-.02em;color:#173c2d}
.os-dialog-head p{margin:3px 0 0;color:#8b9b90;font-size:12px}
.os-dialog-body{overflow-y:auto;padding:22px 24px;display:grid;gap:20px}
.os-dialog-foot{display:flex;justify-content:flex-end;gap:10px;padding:15px 24px;
  border-top:1px solid #e7ede6;background:#fbfdfb}

.os-section{border:1px solid #e9efe8;border-radius:13px;padding:16px 18px 18px}
.os-section>h3{margin:0 0 14px;font:800 13px Manrope,sans-serif;letter-spacing:.06em;
  text-transform:uppercase;color:#56846b}
.os-section .form-grid{gap:14px}
.os-section textarea{min-height:70px}
.os-checks{display:flex;gap:18px;flex-wrap:wrap;grid-column:1/-1}
.os-checks label{display:flex;align-items:center;gap:8px;font-weight:600;color:#456454}
.os-checks input{width:17px;min-height:auto;accent-color:#1d5c40}

/* Checklist de entrada */
.os-password{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:start}
.os-password-text{display:grid;gap:6px;color:#56846b;font-size:12px;font-weight:700}
.os-pattern{display:grid;gap:8px;justify-items:center}
.os-pattern-legend{color:#56846b;font-size:12px;font-weight:700}
.os-pattern-board{position:relative;width:210px;height:210px;display:grid;
  grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:6px;
  padding:10px;border:1px solid #dfe9e0;border-radius:14px;background:#fbfdfb;
  touch-action:none;user-select:none}
.os-pattern-board .os-dot{width:100%;height:100%;border-radius:50%;border:1px solid #cfe0d2;
  background:#fff;color:#7d8e83;font-weight:700;font-size:11px;display:grid;place-items:center;
  padding:0;min-height:0;transition:background .12s,color .12s,border-color .12s}
.os-pattern-board .os-dot:hover{border-color:#9cc4a9}
.os-pattern-board .os-dot.is-on{background:#1d5c40;border-color:#1d5c40;color:#fff}
.os-pattern-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.os-pattern-lines line{stroke:#1d5c40;stroke-width:7;stroke-linecap:round;fill:none}
.os-pattern-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center}
.os-pattern-value{color:#56846b;font-size:12px;font-weight:600}
.os-pattern-svg{width:120px;height:120px;display:block}
.os-pattern-svg.is-small{width:84px;height:84px}
.os-pattern-svg line{stroke:#16281f;stroke-width:9;stroke-linecap:round;fill:none}
.os-pattern-svg circle{fill:#fff;stroke:#16281f;stroke-width:5}
.os-pattern-svg circle.is-on{fill:#16281f}
.receipt-pattern{display:flex;justify-content:center;margin:2mm 0}
.receipt-pattern .os-pattern-svg{width:26mm;height:26mm}
.receipt-pattern .os-pattern-svg line{stroke:#000;stroke-width:10}
.receipt-pattern .os-pattern-svg circle{stroke:#000}
.receipt-pattern .os-pattern-svg circle.is-on{fill:#000}
.os-sheet-pattern{display:flex;align-items:center;gap:12px;margin-top:6px}
.os-sheet-pattern span{font-size:10.5px}
.os-sheet-pattern .os-pattern-svg{width:22mm;height:22mm}
.os-print-paper-tabs{display:flex;justify-content:flex-end;gap:8px;margin:0 0 12px}
.os-print-paper-tabs .btn[aria-pressed="true"]{background:#1d5c40;border-color:#1d5c40;color:#fff}
.os-print-view{background:#fff;color:#16281f;border:1px solid #dfe9e0;border-radius:10px;
  padding:18px 20px;font-size:12px;line-height:1.45;max-height:66vh;overflow:auto}
.os-print-view.is-sheet{padding:22px;font-size:11px}
.os-print-copies{display:flex;align-items:center;gap:8px;font-weight:600;color:#456454;font-size:12px}
.os-print-copies input{width:16px;min-height:auto;accent-color:#1d5c40}
.os-print-copies input:disabled{cursor:not-allowed}

/* Folha A4 da ordem de serviço */
.os-sheet{color:#16281f;font-size:11px;line-height:1.5}
.os-sheet-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;
  padding-bottom:12px;border-bottom:2px solid #1f6043}
.os-sheet-company{display:grid;gap:1px}
.os-sheet-company strong{font:800 15px Manrope,sans-serif;letter-spacing:.04em;text-transform:uppercase}
.os-sheet-company span{color:#4d6757;font-size:10px}
.os-sheet-title{text-align:right;display:grid;gap:2px;justify-items:end}
.os-sheet-title h1{margin:0;font:800 15px Manrope,sans-serif;letter-spacing:.09em}
.os-sheet-number{font-weight:800;font-size:13px;color:#1f6043}
.os-sheet-title span:last-child{color:#4d6757;font-size:10px}
.os-sheet-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 16px;
  padding:12px 0;border-bottom:1px solid #dfe9e0}
.os-sheet-grid>div{display:grid;gap:1px;min-width:0}
.os-sheet-grid span{font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#6d8477}
.os-sheet-grid strong{font-weight:600;font-size:11px;overflow-wrap:anywhere}
.os-sheet-block{padding:12px 0;border-bottom:1px solid #dfe9e0}
.os-sheet-block h2{margin:0 0 8px;font:800 11px Manrope,sans-serif;letter-spacing:.1em;
  text-transform:uppercase;color:#1f6043}
.os-sheet-block .os-sheet-grid{padding:0;border:0}
.os-sheet-text{margin:6px 0 0;font-size:10.5px;line-height:1.5}
.os-sheet-checklist{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));
  gap:4px 14px;margin:0;padding:0;list-style:none;font-size:10.5px}
.os-sheet-checklist li::before{content:'[  ]';font-family:"Courier New",Consolas,monospace;color:#4d6757;margin-right:6px}
.os-sheet-checklist li.is-checked{font-weight:700}
.os-sheet-checklist li.is-checked::before{content:'[X]';color:#1f6043}
.os-sheet-table{width:100%;border-collapse:collapse;font-size:10.5px}
.os-sheet-table th{text-align:left;font-size:9px;letter-spacing:.07em;text-transform:uppercase;
  color:#6d8477;padding:5px 6px;border-bottom:1px solid #c9d8cd}
.os-sheet-table td{padding:5px 6px;border-bottom:1px solid #eef2ee;vertical-align:top}
.os-sheet-table small{color:#6d8477;font-size:9px}
.os-sheet-table .os-sheet-kind{width:70px}
.os-sheet-table .os-sheet-qty{width:52px;text-align:right}
.os-sheet-table .os-sheet-value{width:86px;text-align:right}
.os-sheet-totals{display:grid;gap:3px;justify-content:end;padding:12px 0;border-bottom:1px solid #dfe9e0}
.os-sheet-row{display:grid;grid-template-columns:auto 120px;gap:16px;font-size:10.5px}
.os-sheet-row span:last-child{text-align:right}
.os-sheet-total{margin-top:4px;padding-top:6px;border-top:1px solid #c9d8cd;
  font:800 14px Manrope,sans-serif;color:#173d2e}
.os-sheet-disclaimer{margin:12px 0 0;font-size:9.5px;color:#4d6757}
.os-sheet-footer{margin:6px 0 0;font-size:10px;font-weight:700;text-align:center}
.os-sheet-signatures{display:grid;grid-template-columns:1fr 1fr;gap:36px;margin-top:34px;text-align:center;font-size:10px}
.os-sheet-signatures div{display:grid;gap:4px}
.os-sheet-signatures span{display:block;border-top:1px solid #4d6757}

/* Duas vias na mesma folha: uma via em cada metade do A4, com linha de corte. */
.os-sheet-pair{display:grid;gap:0}
.os-sheet-cutline{display:flex;align-items:center;gap:8px;color:#8b9b90;
  font-size:9px;letter-spacing:.08em;text-transform:uppercase;
  padding:2px 0;border-top:1px dashed #9fb3a4;margin-top:4px}
.os-sheet-cutline span{white-space:nowrap;background:#fff;padding:0 6px}
.os-sheet-half{overflow:hidden}
.os-sheet-scale{transform-origin:top left}
.os-sheet-via{display:block;font:800 10px Manrope,sans-serif;letter-spacing:.14em;
  text-transform:uppercase;color:#1f6043;margin-bottom:6px}

#pos-print-area .os-sheet{color:#000}
/* No papel A4 a área usa a página padrão (a do cupom é a nomeada `posreceipt`). */
#pos-print-area.os-print-a4{page:auto;width:auto;max-width:none;padding:0;
  font:11px/1.5 "DM Sans",system-ui,sans-serif;color:#000}

/* Duas vias: mede cada metade já no tamanho real da área útil do A4. */
.os-print-view.is-pair .os-sheet-pair,
#pos-print-area.os-print-pair .os-sheet-pair {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:minmax(0,1fr) 6mm minmax(0,1fr);
  width:186mm;
  height:272mm;
  margin:0 auto;
  box-sizing:border-box;
}

.os-print-view.is-pair .os-sheet-half,
#pos-print-area.os-print-pair .os-sheet-half {
  min-height:0;
  overflow:hidden;
}

.os-print-view.is-pair .os-sheet-cutline,
#pos-print-area.os-print-pair .os-sheet-cutline {
  height:6mm;
  min-height:6mm;
  margin:0;
  padding:1mm 0;
  box-sizing:border-box;
  line-height:1;
  break-inside:avoid;
  page-break-inside:avoid;
}

/* Compactação sutil exclusiva das duas vias, antes do cálculo de escala. */
.os-sheet-pair .os-sheet-head{gap:12px;padding-bottom:8px}
.os-sheet-pair .os-sheet-grid{gap:6px 12px;padding:8px 0}
.os-sheet-pair .os-sheet-block{padding:8px 0}
.os-sheet-pair .os-sheet-block h2{margin:0 0 5px}
.os-sheet-pair .os-sheet-block .os-sheet-grid{padding:0;border:0}
.os-sheet-pair .os-sheet-text{margin:4px 0 0;line-height:1.4}
.os-sheet-pair .os-sheet-checklist{gap:3px 10px}
.os-sheet-pair .os-sheet-table th,.os-sheet-pair .os-sheet-table td{padding:4px 5px}
.os-sheet-pair .os-sheet-totals{gap:2px;padding:8px 0}
.os-sheet-pair .os-sheet-total{margin-top:3px;padding-top:4px;font-size:13px}
.os-sheet-pair .os-sheet-disclaimer{margin:7px 0 0}
.os-sheet-pair .os-sheet-footer{margin:4px 0 0}
.os-sheet-pair .os-sheet-signatures{gap:24px;margin-top:14px}
.os-sheet-pair .os-sheet-pattern{margin:4px 0}
.os-sheet-pair .os-sheet-pattern .os-pattern-svg{width:18mm;height:18mm}
.os-sheet-pair .os-sheet-via{margin-bottom:3px}

@media print{
  body.printing-sheet>*{display:none!important}
  body.printing-sheet>#pos-print-area{display:block!important}
  body.printing-sheet>#pos-print-area.os-print-a4{width:auto;padding:0}
  body.printing-sheet .pos-receipt-actions,body.printing-sheet .os-print-paper-tabs{display:none!important}
  body.printing-sheet .os-sheet-block,body.printing-sheet .os-sheet-table tr{break-inside:avoid;page-break-inside:avoid}
  /* Reserva uma folga para arredondamento do navegador e evita uma segunda página. */
  body.printing-sheet>#pos-print-area.os-print-pair{
    display:block!important;
    width:186mm;
    height:272mm;
    max-height:272mm;
    margin:0 auto;
    padding:0;
    box-sizing:border-box;
    overflow:hidden;
    break-inside:avoid-page;
    page-break-inside:avoid;
    break-after:avoid-page;
    page-break-after:avoid;
  }
  body.printing-sheet>#pos-print-area.os-print-pair .os-sheet-pair{
    width:186mm;
    height:272mm;
    max-height:272mm;
    grid-template-rows:minmax(0,1fr) 6mm minmax(0,1fr);
  }
  body.printing-sheet>#pos-print-area.os-print-pair .os-sheet-half{
    height:auto;min-height:0}
  body.printing-sheet>#pos-print-area.os-print-pair .os-sheet-cutline{
    height:6mm;min-height:6mm;margin:0;padding:1mm 0;line-height:1;
    break-inside:avoid;page-break-inside:avoid}
}

.os-checklist{display:grid;gap:14px}
.os-checklist-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:10px 16px}
.os-checklist-items label{display:flex;align-items:center;gap:9px;font-weight:600;color:#456454;
  padding:9px 12px;border:1px solid #e6ede6;border-radius:9px;background:#fbfdfb}
.os-checklist-items input{width:17px;min-height:auto;accent-color:#1d5c40;flex:0 0 auto}
.os-checklist-face{display:grid;gap:8px;padding-top:12px;border-top:1px dashed #e2eae1}
.os-checklist-legend{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#56846b}
.os-checklist-options{display:flex;flex-wrap:wrap;gap:10px 20px}
.os-checklist-options label{display:flex;align-items:center;gap:8px;font-weight:600;color:#456454}
.os-checklist-options input{width:17px;min-height:auto;accent-color:#1d5c40}

/* Busca de cliente e de itens */
.os-item-toolbar{display:flex;align-items:end;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.os-item-toolbar .os-combo{flex:1 1 260px;min-width:0}
.os-item-kind{display:grid;gap:6px;color:#56846b;font-size:12px;font-weight:700;flex:0 1 180px}
.os-item-kind select{height:40px;padding:8px 12px;border:1px solid #d7e2d8;border-radius:8px;background:#fff;color:#20352e}
.os-combo{position:relative}
.os-combo-results{position:absolute;z-index:20;top:calc(100% + 4px);left:0;right:0;max-height:230px;
  overflow-y:auto;background:#fff;border:1px solid #dfe9e0;border-radius:10px;
  box-shadow:0 14px 34px #173c2d24;padding:4px}
.os-combo-results button{display:block;width:100%;text-align:left;border:0;background:none;
  padding:9px 11px;border-radius:7px;font-weight:600;color:#20402f}
.os-combo-results button small{display:block;color:#8b9b90;font-weight:500;font-size:11px}
.os-combo-results button:hover,.os-combo-results button:focus-visible{background:#edf4e6}
.os-combo-empty{padding:10px 11px;color:#8b9b90;font-size:12px}

/* Itens da ordem */
.os-items{width:100%;border-collapse:collapse;min-width:100%}
.os-items th{text-align:left;font-size:10px;letter-spacing:.09em;text-transform:uppercase;
  color:#94a299;padding:8px 10px;border-bottom:1px solid #e7ede6}
.os-items td{padding:8px 10px;border-bottom:1px solid #f0f3ef;vertical-align:middle}
.os-items tr:last-child td{border-bottom:0}
.os-items input{padding:8px 10px;min-height:36px}
.os-items .os-col-name{width:auto}
.os-items .os-col-kind{width:104px}
.os-items .os-item-brand{display:block;color:#8b9b90;font-size:11px;font-weight:500}
.os-items .os-col-qty{width:96px}
.os-items .os-col-money{width:132px}
.os-items .os-col-total{width:120px;text-align:right;font-weight:700;color:#294e36}
.os-items .os-col-remove{width:44px;text-align:center}
.os-items .os-remove{border:1px solid #e6ded8;background:#fff;color:#a8563f;border-radius:8px;
  width:32px;height:32px;line-height:1;font-size:17px;font-weight:700}
.os-items .os-remove:hover{background:#fdeae5}
.os-items-wrap{border:1px solid #eef2ee;border-radius:11px;overflow:hidden;background:#fff}
.os-items-empty{padding:22px;text-align:center;color:#8b9b90;font-size:13px}

/* Resumo de valores */
.os-totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;align-items:end}
.os-total-box{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;
  gap:12px;padding:13px 16px;border-radius:11px;background:#f4f8f3;border:1px solid #e3ece1}
.os-total-box span{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#56846b}
.os-total-box strong{font:800 22px Manrope,sans-serif;color:#173d2e;letter-spacing:-.03em}

@media(max-width:760px){
  .os-dialog{width:calc(100% - 12px);max-height:96vh}
  .os-dialog-head,.os-dialog-body,.os-dialog-foot{padding-left:14px;padding-right:14px}
  .os-section .form-grid{grid-template-columns:1fr}
  .os-item-toolbar .os-item-kind{flex:1 1 100%}
  .os-table{min-width:720px}
  .os-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .os-password{grid-template-columns:1fr}
  .os-print-paper-tabs{flex-wrap:wrap;justify-content:flex-start}
}
