:root{font-family:Inter,system-ui,Arial,sans-serif;color:#172b3a;background:#f3f6f9}*{box-sizing:border-box}body{margin:0}header{background:#173b58;color:white;padding:16px 4vw;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:2}header b{letter-spacing:.06em}header small{display:block;color:#c7d8e4;margin-top:3px}.pill{border:1px solid #8fb4ca;border-radius:30px;padding:6px 10px;font-size:12px}main{max-width:1200px;margin:24px auto;padding:0 16px}.panel{background:white;border:1px solid #e1e8ee;border-radius:14px;padding:18px;margin:14px 0;box-shadow:0 3px 14px #173b5808}.narrow{max-width:430px;margin:50px auto}h1{font-size:25px;margin:8px 0 18px}h3{margin:4px 0 14px}label{display:block;font-size:13px;margin:12px 0}input,select{width:100%;padding:12px;border:1px solid #cbd6df;border-radius:8px;background:white;font:inherit;min-width:0}button{border:0;border-radius:8px;background:#176a9a;color:white;padding:11px 15px;font-weight:650;cursor:pointer}button:hover{filter:brightness(.95)}button:disabled{opacity:.5;cursor:not-allowed}.secondary{background:#e6eef4;color:#173b58}.danger{background:#a53c3c}nav{display:flex;gap:7px;overflow:auto;padding:8px 0}nav button{white-space:nowrap;background:#e4ebf0;color:#173b58}nav button.active{background:#173b58;color:white}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:10px 0 20px}.toolbar span{margin-right:auto}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.metric{background:white;border:1px solid #e1e8ee;border-radius:12px;padding:16px}.metric strong{font-size:25px;display:block;margin-top:7px}.muted{font-size:12px;color:#667987}.error{color:#a33}.formrow{display:flex;gap:8px}.formgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.formgrid button{min-height:44px}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px}td,th{text-align:left;padding:10px;border-bottom:1px solid #e8edf1}th{color:#607482;font-size:12px}.line{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #edf1f4;padding:9px 0}#toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:#173b58;color:white;padding:12px 18px;border-radius:10px;display:none;max-width:90vw;z-index:5}@media(max-width:600px){main{margin:12px auto}header{padding:13px 16px}.formrow{flex-direction:column}.toolbar{align-items:stretch}.toolbar span{width:100%}h1{font-size:22px}}

.ticket-modal{position:fixed;inset:0;background:#0009;z-index:10;overflow:auto;padding:20px}
.ticket-actions{max-width:420px;margin:0 auto 12px;display:flex;gap:8px;justify-content:center}
.ticket{background:#fff;color:#111;width:80mm;max-width:100%;margin:auto;padding:4mm;font-family:monospace;font-size:12px}
.ticket h2,.ticket h3,#ticketFooter{text-align:center;margin:4px 0}
.ticket h2{font-size:16px}.ticket h3{font-size:14px}.ticket-note{text-align:center;font-size:10px}
.ticket-line{display:grid;grid-template-columns:1fr auto;gap:5px;padding:3px 0;border-bottom:1px dotted #aaa}
.ticket-small{font-size:10px;color:#333}.ticket-total{display:flex;justify-content:space-between;font-weight:bold;padding:3px 0}
@media print{body *{visibility:hidden!important}.ticket,.ticket *{visibility:visible!important}.ticket{position:absolute;left:0;top:0;width:72mm;max-width:none;margin:0;padding:2mm;border:0}.ticket-modal{position:static;padding:0;background:white}.ticket-actions{display:none!important}}

.remito-modal{position:fixed;inset:0;z-index:20;overflow:auto;background:#000a;padding:20px}
.remito-actions{display:flex;justify-content:center;gap:12px;margin-bottom:12px}
.remito{background:#fff;color:#172b3a;max-width:210mm;min-height:270mm;margin:auto;padding:16mm;font:13px Arial,sans-serif;box-shadow:0 4px 20px #0003}
.remito-head{display:flex;justify-content:space-between;gap:15px;border-bottom:2px solid #173b58;padding-bottom:12px}
.remito-head h2{font-size:19px;margin:0 0 10px}.remito-head h1{font-size:21px;margin:0 0 10px}
.remito-warning{border:1px solid #aaa;padding:8px;text-align:center;font-size:11px;font-weight:bold;margin:18px 0}
.remito-info{line-height:1.7;margin-bottom:20px}.remito-table{width:100%;font-size:12px}.remito-table th{background:#e9eff3;color:#173b58}
#remitoTotals{text-align:right;margin:18px 0;line-height:1.8}.remito-notes{margin-top:25px}.remito-blank{height:45px;border-bottom:1px solid #aaa}
.remito-signatures{display:flex;gap:35px;margin-top:75px}.remito-signatures>div{flex:1;text-align:center;border-top:1px solid #222;padding-top:10px;font-size:11px}
.remito-bottom{text-align:center;font-size:10px;margin-top:30px;color:#555}
@media print{ @page{size:A4;margin:0} body:has(.remito-modal:not([hidden])) *{visibility:hidden!important}body:has(.remito-modal:not([hidden])) .remito,body:has(.remito-modal:not([hidden])) .remito *{visibility:visible!important}body:has(.remito-modal:not([hidden])) .remito{position:absolute;left:0;top:0;width:210mm;max-width:none;min-height:0;padding:14mm;box-shadow:none}body:has(.remito-modal:not([hidden])) .remito-actions{display:none!important}}

/* Ambos formatos comparten el mismo pedido confirmado y no generan movimientos de stock. */
.remito.without-prices .remito-price{display:none!important}
.remito-actions{align-items:center;flex-wrap:wrap}
.remito-actions select{padding:9px;border-radius:7px}
@media print{.remito.without-prices .remito-price{display:none!important}}

.reparto-field { display: contents; }
.reparto-field > span { display: none; }

@media screen {
  body.reparto {
    min-height: 100vh;
    background: #eff6f5;
    color: #122f32;
  }
  .reparto header {
    background: #103c3b;
  }
  .reparto main {
    max-width: 860px;
  }
  .reparto #app > nav {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 5px;
    padding: 5px;
    background: #dcebe8;
    border-radius: 15px;
  }
  .reparto nav button {
    min-height: 48px;
    background: transparent;
    color: #174742;
    border-radius: 11px;
    font-size: 15px;
  }
  .reparto nav button.active {
    background: #105c50;
    color: #fff;
  }
  .reparto #app > .toolbar {
    margin: 14px 0 26px;
    gap: 8px;
  }
  .reparto #app > .toolbar button {
    min-height: 44px;
  }
  .reparto .secondary {
    background: #dcebe8;
    color: #174742;
  }
  .reparto .view > .panel {
    border-color: #d3e3df;
    border-radius: 18px;
    padding: clamp(14px, 4vw, 26px);
  }
  .reparto .view .muted {
    color: #496564;
    line-height: 1.5;
  }
  .reparto #orders .formgrid,
  .reparto #payments .formgrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 12px;
  }
  .reparto .reparto-field {
    display: grid;
    gap: 6px;
    margin: 0;
    min-width: 0;
  }
  .reparto .reparto-field > span {
    display: block;
    color: #244945;
    font-weight: 650;
  }
  .reparto .reparto-field input,
  .reparto .reparto-field select {
    min-height: 48px;
    border-color: #b9cfca;
    font-size: 16px;
  }
  .reparto #addLine,
  .reparto #confirmOrder,
  .reparto #addPayment {
    grid-column: 1 / -1;
    width: 100%;
    min-height: 49px;
    font-size: 15px;
    border-radius: 11px;
    background: #105c50;
  }
  .reparto #addLine {
    color: #174742;
    background: #dcebe8;
  }
  .reparto #confirmOrder {
    margin-top: 14px;
  }
  .reparto #cart .line b {
    flex-shrink: 0;
  }
  .reparto #cart .line button {
    min-width: 44px;
    min-height: 44px;
  }
  .reparto :focus-visible {
    outline: 3px solid #25816f;
    outline-offset: 2px;
  }
}

@media screen and (max-width: 600px) {
  .reparto #app > .toolbar button {
    flex: 1 1 auto;
  }
  .reparto .reparto-field:has(select),
  .reparto .reparto-field:has(#paymentNote),
  .reparto .reparto-field:has(#paymentAmount) {
    grid-column: 1 / -1;
  }
}

#cart:not(:empty) { margin-top: 22px; }
.order-row {
  border: 1px solid #d3e3df;
  border-radius: 12px;
  padding: 12px;
  margin-bottom: 8px;
}
.order-row-summary, .order-total {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
}
.order-row-summary > strong, .order-total > strong:last-child { white-space: nowrap; }
.order-row-summary span { display: block; margin-top: 5px; font-size: 13px; }
.order-row-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.order-row-actions button { min-height: 44px; }
.order-editor { margin-top: 8px; }
.order-editor label { margin: 6px 0 0; font-weight: 650; }
.order-editor input { margin-top: 6px; font-weight: normal; }
.ticket-actions { flex-wrap: wrap; }
@media screen and (max-width: 600px) {
  .order-editor .formgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

#movementDriver { max-width: 430px; }
#driverMovementTable { margin-top: 14px; }
#driverMovementPages { margin-top: 12px; }
