@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Inter:wght@400;500;600&display=swap');

:root{
  --teal-deep:#0B5E66;
  --teal:#0E7C86;
  --teal-light:#E4F4F3;
  --aqua-mist:#CFEDEB;
  --ink:#0F2027;
  --paper:#FBFDFC;
  --danger:#C6553A;
  --line:#CFE3E1;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:'Inter',sans-serif;
  background:var(--teal-light);
  color:var(--ink);
  min-height:100vh;
}
.app{
  max-width:1100px;
  margin:0 auto;
  padding:20px 16px 60px;
}
header{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  border-bottom:2px solid var(--teal);
  padding-bottom:14px;
  margin-bottom:20px;
  flex-wrap:wrap;
  gap:10px;
}
.brand{
  font-family:'Space Grotesk',sans-serif;
  font-weight:700;
  font-size:26px;
  color:var(--teal-deep);
  letter-spacing:-0.02em;
}
.brand small{
  display:block;
  font-family:'Inter',sans-serif;
  font-weight:400;
  font-size:12.5px;
  color:#4F7477;
  letter-spacing:0;
  margin-top:2px;
}
.header-right{display:flex;align-items:center;gap:16px;}
.logout-btn{
  background:none;
  border:1px solid var(--line);
  color:#4F7477;
  font-size:12.5px;
  padding:7px 12px;
  border-radius:7px;
  cursor:pointer;
  font-family:'Inter',sans-serif;
}
.logout-btn:hover{border-color:var(--teal);color:var(--teal-deep);}

.login-screen{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(160deg, var(--teal-deep), var(--teal) 60%, var(--aqua-mist));
  padding:20px;
}
.login-box{
  background:var(--paper);
  border-radius:14px;
  padding:32px 28px;
  width:100%;
  max-width:320px;
  text-align:center;
  box-shadow:0 10px 30px rgba(11,94,102,0.25);
}
.login-brand{
  font-family:'Space Grotesk',sans-serif;
  font-weight:700;
  font-size:22px;
  color:var(--teal-deep);
}
.login-sub{
  font-size:13.5px;
  color:#4F7477;
  margin:6px 0 22px;
}
.login-box form{display:flex;flex-direction:column;gap:12px;}
.login-box input{
  padding:12px 14px;
  border-radius:8px;
  border:1.5px solid var(--line);
  font-size:15px;
  font-family:inherit;
}
.login-box input:focus{outline:none;border-color:var(--teal);}
.login-error{
  font-size:13px;
  color:var(--danger);
  margin:-4px 0 0;
  min-height:16px;
}

.header-right{display:flex;align-items:center;gap:16px;}
.nav-buttons{display:flex;gap:8px;}
.nav-btn{
  background:none;
  border:1px solid var(--line);
  color:var(--teal-deep);
  font-size:12.5px;
  font-weight:600;
  font-family:'Space Grotesk',sans-serif;
  padding:7px 12px;
  border-radius:7px;
  cursor:pointer;
}
.nav-btn:hover{background:var(--aqua-mist);}
.logout-btn{
  background:none;
  border:1px solid var(--line);
  color:#4F7477;
  font-size:12.5px;
  padding:7px 12px;
  border-radius:7px;
  cursor:pointer;
  font-family:'Inter',sans-serif;
}
.logout-btn:hover{border-color:var(--teal);color:var(--teal-deep);}

/* Cliente en la venta */
.cliente-box{margin-bottom:14px;position:relative;}
.cliente-lbl{
  display:block;
  font-size:12.5px;
  color:#4F7477;
  margin-bottom:6px;
}
.cliente-input-wrap{display:flex;align-items:center;gap:6px;}
.cliente-input-wrap input{
  flex:1;
  padding:10px 12px;
  border-radius:8px;
  border:1.5px solid var(--line);
  font-size:14.5px;
  font-family:inherit;
}
.cliente-input-wrap input:focus{outline:none;border-color:var(--teal);}
.cliente-clear{
  width:30px;height:30px;
  border-radius:7px;
  border:1px solid var(--line);
  background:#fff;
  color:#4F7477;
  font-size:16px;
  cursor:pointer;
}
.cliente-suggestions{
  position:absolute;
  z-index:10;
  top:64px;
  left:0; right:0;
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  box-shadow:0 6px 18px rgba(11,94,102,0.15);
  max-height:180px;
  overflow-y:auto;
}
.cliente-suggestions .item{
  padding:10px 12px;
  font-size:14px;
  cursor:pointer;
  border-bottom:1px solid var(--line);
}
.cliente-suggestions .item:last-child{border-bottom:none;}
.cliente-suggestions .item:hover{background:var(--teal-light);}
.cliente-suggestions .item.new{color:var(--teal-deep);font-weight:600;}
.cliente-hist-btn{
  margin-top:8px;
  background:none;
  border:none;
  color:var(--teal-deep);
  font-size:12.5px;
  text-decoration:underline;
  cursor:pointer;
  padding:0;
  font-family:'Inter',sans-serif;
}

/* Modales anchos (Clientes / Vendedores / Reportes) */
.modal-wide{max-width:520px;text-align:left;max-height:85vh;overflow-y:auto;}
.modal-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;}
.modal-x{
  background:none;border:none;font-size:22px;line-height:1;
  color:#4F7477;cursor:pointer;
}
.wide-input{
  width:100%;
  padding:11px 12px;
  border-radius:8px;
  border:1.5px solid var(--line);
  font-size:14.5px;
  font-family:inherit;
  margin-bottom:14px;
}
.wide-input:focus{outline:none;border-color:var(--teal);}

.clientes-list .cliente-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:10px 4px;
  border-bottom:1px solid var(--line);
  cursor:pointer;
}
.clientes-list .cliente-row:hover{background:var(--teal-light);}
.clientes-list .cliente-row .nombre{font-weight:600;font-size:14px;}
.clientes-list .cliente-row .meta{font-size:12px;color:#4F7477;}

.back-link{
  background:none;border:none;color:var(--teal-deep);
  font-size:13px;cursor:pointer;padding:0;margin-bottom:10px;
  font-family:'Inter',sans-serif;
}
.cliente-venta-item{
  border-bottom:1px solid var(--line);
  padding:10px 0;
  font-size:13.5px;
}
.cliente-venta-item .top-row{display:flex;justify-content:space-between;font-weight:600;}
.cliente-venta-item .sub{color:#4F7477;font-size:12.5px;margin-top:3px;}

.vendedores-list .vendedor-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:10px 4px;
  border-bottom:1px solid var(--line);
}
.vendedores-list .vendedor-row .nombre{font-weight:600;font-size:14px;}
.vendedores-list .vendedor-row .meta{font-size:12px;color:#4F7477;}
.vendedores-list .del-btn{
  background:none;border:1px solid var(--danger);color:var(--danger);
  border-radius:7px;padding:6px 10px;font-size:12px;cursor:pointer;
}
.stacked-form{display:flex;flex-direction:column;gap:10px;}
.stacked-form input{
  padding:11px 12px;border-radius:8px;border:1.5px solid var(--line);
  font-size:14.5px;font-family:inherit;
}
.stacked-form input:focus{outline:none;border-color:var(--teal);}

.reporte-vendedor{
  border:1px solid var(--line);
  border-radius:10px;
  padding:14px;
  margin-bottom:12px;
}
.reporte-vendedor .top-row{
  display:flex;justify-content:space-between;align-items:baseline;
}
.reporte-vendedor .top-row .nombre{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:15px;color:var(--teal-deep);}
.reporte-vendedor .top-row .total{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:16px;}
.reporte-vendedor .num-ventas{font-size:12.5px;color:#4F7477;margin:2px 0 8px;}
.reporte-producto-row{
  display:flex;justify-content:space-between;
  font-size:13px;padding:4px 0;
  color:#3A5254;
}

.day-total{text-align:right;}

/* Fiado */
.fiado-check{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:13.5px;
  color:#4F7477;
  margin-bottom:10px;
  cursor:pointer;
}
.fiado-check input{width:16px;height:16px;}
.fiado-note{
  font-size:12.5px;
  color:var(--danger);
  margin:-6px 0 8px;
}

/* Adeudo dentro del detalle de cliente */
.adeudo-box{
  background:#FBEFEA;
  border:1px solid #EBC9BA;
  border-radius:10px;
  padding:14px;
  margin-bottom:16px;
}
.adeudo-total{
  font-family:'Space Grotesk',sans-serif;
  font-weight:700;
  font-size:16px;
  color:var(--danger);
  margin:0 0 8px;
}
.adeudo-item-row{
  display:flex;justify-content:space-between;
  font-size:13px;padding:4px 0;color:#7A4632;
}
.deuda-tag{
  color:var(--danger);
  font-weight:600;
}

/* Corte de caja */
.corte-resumen{
  border:1px solid var(--line);
  border-radius:10px;
  padding:16px;
  margin-bottom:16px;
  background:var(--teal-light);
}
.corte-resumen .total-general{
  font-family:'Space Grotesk',sans-serif;
  font-weight:700;
  font-size:24px;
  color:var(--teal-deep);
  margin:4px 0 12px;
}
.corte-fila{
  display:flex;justify-content:space-between;
  padding:8px 0;
  border-bottom:1px solid var(--line);
  font-size:13.5px;
}
.corte-fila:last-child{border-bottom:none;}
.corte-fila.clickable{cursor:pointer;}
.corte-fila.clickable:hover{background:#fff;}
.corte-venta-item{
  border-bottom:1px solid var(--line);
  padding:8px 0;
  font-size:13px;
}
.corte-venta-item .top-row{display:flex;justify-content:space-between;font-weight:600;}
.corte-venta-item .sub{color:#4F7477;font-size:12px;margin-top:2px;}
.day-total .amount{
  font-family:'Space Grotesk',sans-serif;
  font-weight:700;
  font-size:22px;
  color:var(--teal-deep);
}
.day-total .lbl{font-size:12px;color:#4F7477;}
.layout{
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:20px;
}
@media (max-width:760px){
  .layout{grid-template-columns:1fr;}
}
.card{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:10px;
  padding:18px;
}
.section-title{
  font-family:'Space Grotesk',sans-serif;
  font-weight:600;
  font-size:15px;
  color:var(--teal-deep);
  margin:0 0 14px;
}
.products{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin-bottom:18px;
}
.product{
  border:1.5px solid var(--line);
  border-radius:10px;
  padding:16px 14px;
  background:linear-gradient(180deg,#fff, var(--aqua-mist) 220%);
  display:flex;
  flex-direction:column;
  gap:10px;
  user-select:none;
}
.product .icon{font-size:30px;line-height:1;}
.product .name{
  font-family:'Space Grotesk',sans-serif;
  font-weight:600;
  font-size:15px;
}
.product .price{
  font-size:13px;
  color:var(--teal-deep);
  font-weight:600;
}
.product .price input{
  width:64px;
  border:none;
  border-bottom:1px dashed var(--teal);
  background:transparent;
  font-weight:600;
  color:var(--teal-deep);
  font-size:13px;
  font-family:inherit;
}
.stepper{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:2px;
}
.stepper button{
  width:38px;height:38px;
  border-radius:8px;
  border:1px solid var(--teal);
  background:#fff;
  color:var(--teal-deep);
  font-size:19px;
  font-weight:600;
  cursor:pointer;
}
.stepper button:active{background:var(--teal-light);}
.stepper .qty{
  font-family:'Space Grotesk',sans-serif;
  font-weight:700;
  font-size:18px;
  min-width:28px;
  text-align:center;
}
.ticket-lines{
  min-height:120px;
  max-height:260px;
  overflow-y:auto;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:10px 0;
  margin-bottom:14px;
}
.ticket-line{
  display:flex;
  justify-content:space-between;
  font-size:14px;
  padding:6px 0;
}
.ticket-line .amt{font-weight:600;color:var(--teal-deep);}
.empty-note{
  color:#7C9A9C;
  font-size:13.5px;
  padding:30px 4px;
  text-align:center;
}
.totals-row{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  margin:14px 0 4px;
}
.totals-row .lbl{font-size:14px;color:#4F7477;}
.totals-row .val{
  font-family:'Space Grotesk',sans-serif;
  font-weight:700;
  font-size:26px;
  color:var(--teal-deep);
}
.pay-row{display:flex;gap:10px;margin-top:12px;}
.pay-row input{
  flex:1;
  padding:12px;
  border-radius:8px;
  border:1.5px solid var(--line);
  font-size:16px;
  font-family:inherit;
}
.pay-row input:focus{outline:none;border-color:var(--teal);}
.change-note{font-size:13.5px;margin-top:8px;color:#4F7477;}
.change-note b{color:var(--teal-deep);}
.change-note.short{color:var(--danger);}
.actions{display:flex;gap:10px;margin-top:16px;}
.btn{
  border:none;
  border-radius:8px;
  padding:13px 16px;
  font-family:'Space Grotesk',sans-serif;
  font-weight:600;
  font-size:14.5px;
  cursor:pointer;
}
.btn-primary{background:var(--teal-deep);color:#fff;flex:1;}
.btn-primary:disabled{background:#B7CBCB;cursor:not-allowed;}
.btn-ghost{background:transparent;border:1.5px solid var(--line);color:#4F7477;}
.history-toggle{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top:26px;
}
.history-toggle button{
  background:none;border:none;color:var(--teal-deep);
  font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:13.5px;
  cursor:pointer;text-decoration:underline;padding:0;
}
.history-list{margin-top:12px;border-top:1px solid var(--line);padding-top:10px;}
.history-item{
  display:flex;justify-content:space-between;font-size:13px;
  padding:5px 0;color:#4F7477;
}
.history-item b{color:var(--ink);}
.toast{
  position:fixed;bottom:20px;left:50%;
  transform:translateX(-50%) translateY(20px);
  background:var(--teal-deep);color:#fff;
  padding:12px 20px;border-radius:8px;font-size:14px;
  opacity:0;transition:opacity .2s, transform .2s;pointer-events:none;
  z-index:50;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* Modal de confirmación / imprimir */
.modal-backdrop{
  display:none;
  position:fixed;inset:0;
  background:rgba(15,32,39,0.45);
  align-items:center;justify-content:center;
  z-index:100;
  padding:20px;
}
.modal-backdrop.show{display:flex;}
.modal{
  background:var(--paper);
  border-radius:12px;
  padding:24px;
  max-width:320px;
  width:100%;
  text-align:center;
}
.modal-title{
  font-family:'Space Grotesk',sans-serif;
  font-weight:700;font-size:18px;color:var(--teal-deep);
  margin:0 0 6px;
}
.modal-sub{font-size:14px;color:#4F7477;margin:0 0 18px;}
.modal-actions{display:flex;gap:10px;}
.modal-actions .btn{flex:1;}

/* Ticket imprimible: oculto en pantalla */
#printArea{display:none;}

@media print{
  body *{visibility:hidden;}
  #printArea, #printArea *{visibility:visible;}
  #printArea{
    display:block;
    position:absolute;
    top:0; left:0;
    width:100%;
  }
  .ticket-print{
    width:340px;
    margin:0 auto;
    font-family:'Inter',monospace;
    font-size:15px;
    line-height:1.5;
    color:#000;
  }
  .ticket-print h2{
    font-size:20px;
    text-align:center;
    margin:0 0 2px;
  }
  .ticket-print .pt-phone{
    text-align:center;
    font-size:13px;
    margin:0 0 6px;
  }
  .ticket-print p{margin:4px 0;}
  .ticket-print hr{border:none;border-top:1px dashed #000;margin:12px 0;}
  .pt-line{display:flex;justify-content:space-between;}
  .pt-thanks{text-align:center;margin-top:14px;font-size:14px;}
}
