:root{
  --pink:#d98a8f;
  --pink-soft:#f8e9ea;
  --gold:#c8942f;
  --gold-soft:#fbf2df;
  --green:#6f9f48;
  --green-soft:#eef6e7;
  --text:#292323;
  --muted:#766f6f;
  --border:#eadede;
  --bg:#fffaf9;
}
*{box-sizing:border-box}
body{
  margin:0;
  font-family:Inter,Segoe UI,Arial,sans-serif;
  background:var(--bg);
  color:var(--text);
  display:flex;
  min-height:100vh;
}
.sidebar{
  width:240px;
  background:#fff;
  border-right:1px solid var(--border);
  padding:20px 14px;
  position:fixed;
  top:0;bottom:0;left:0;
}
.logo{
  width:180px;height:180px;object-fit:contain;
  display:block;margin:0 auto 20px;
  border-radius:50%;
}
nav{display:grid;gap:8px}
.nav{
  border:0;background:transparent;text-align:left;padding:12px 14px;
  border-radius:12px;font-size:15px;cursor:pointer
}
.nav:hover,.nav.active{background:var(--pink-soft);color:#8f313a}
.main{
  margin-left:240px;
  width:calc(100% - 240px);
  padding:28px;
}
header{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}
h1,h2{margin:0 0 6px}
.muted{color:var(--muted);margin:0}
.view{display:none}
.view.active{display:block}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px}
.card,.panel{
  background:#fff;border:1px solid var(--border);border-radius:18px;
  padding:20px;box-shadow:0 8px 24px rgba(150,100,100,.05)
}
.card span{display:block;color:var(--muted);margin-bottom:8px}
.card strong{font-size:32px}
.quick{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px}
.action,.primary,.secondary{
  border:0;border-radius:14px;padding:14px 16px;cursor:pointer;font-weight:600
}
.action{font-size:16px}
.green{background:var(--green-soft);color:#385c22}
.pink{background:var(--pink-soft);color:#8f313a}
.gold{background:var(--gold-soft);color:#875f13}
.primary{background:linear-gradient(135deg,var(--pink),#c66d75);color:#fff}
.secondary{background:#f3eeee;color:#5f5555}
.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.search,input{
  width:100%;border:1px solid var(--border);background:#fff;border-radius:12px;
  padding:13px 14px;font-size:15px;outline:none
}
.search{margin-bottom:16px}
input:focus{border-color:var(--pink);box-shadow:0 0 0 3px rgba(217,138,143,.15)}
table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--border);border-radius:16px;overflow:hidden}
th,td{padding:12px 14px;border-bottom:1px solid #f0e8e8;text-align:left}
th{background:#fff7f6;color:#655b5b;font-weight:600}
.badge{padding:5px 9px;border-radius:999px;font-size:12px}
.ok{background:var(--green-soft);color:#447328}
.low{background:var(--gold-soft);color:#8c6418}
.out{background:#fde5e5;color:#9a2f2f}
.form-panel{max-width:520px;display:grid;gap:10px}
.product-preview{min-height:36px;padding:8px 0}
.total{font-size:24px;text-align:right;margin:18px 0}
.cart-row{display:grid;grid-template-columns:1fr 80px 120px 40px;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}
.cart-row button{border:0;background:#fff0f0;border-radius:8px;cursor:pointer;padding:8px}
.catalog-header{display:flex;align-items:center;gap:18px;margin-bottom:18px}
.catalog-logo{width:90px;height:90px;border-radius:50%;object-fit:cover}
.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px}
.product-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:14px}
.product-img{width:100%;height:150px;border-radius:12px;background:#f8f0ef;display:flex;align-items:center;justify-content:center;overflow:hidden;margin-bottom:12px}
.product-img img{width:100%;height:100%;object-fit:cover}
.product-card h3{margin:0 0 8px;font-size:17px}
.price{font-size:20px;font-weight:700;color:#8f313a}
dialog{border:0;border-radius:18px;padding:0;max-width:460px;width:92%;box-shadow:0 25px 70px rgba(0,0,0,.2)}
dialog::backdrop{background:rgba(50,30,30,.35)}
#formProducto{display:grid;gap:9px;padding:22px}
.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:10px}
@media(max-width:850px){
  .sidebar{position:static;width:100%;border-right:0;border-bottom:1px solid var(--border)}
  body{display:block}
  .main{margin-left:0;width:100%;padding:18px}
  .logo{width:120px;height:120px}
  .cards,.quick{grid-template-columns:1fr}
}

.qty-control{
  display:flex;
  align-items:center;
  gap:6px;
}
.qty-control button{
  width:32px;
  height:32px;
  padding:0;
  border:1px solid var(--border);
  background:#fff7f6;
  border-radius:8px;
  cursor:pointer;
  font-size:18px;
}
.qty-input{
  width:64px;
  padding:7px 6px;
  text-align:center;
  border-radius:8px;
}

.actions-cell{
  white-space:nowrap;
}
.table-action{
  border:0;
  border-radius:9px;
  padding:8px 10px;
  margin:2px;
  cursor:pointer;
  font-weight:600;
}
.edit-stock{
  background:var(--gold-soft);
  color:#7f5b18;
}
.delete-product{
  background:#fdeaea;
  color:#9a3434;
}
.table-action:hover{
  filter:brightness(.97);
  transform:translateY(-1px);
}

.edit-product{
  background:var(--pink-soft);
  color:#8f313a;
}

.dashboard-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:18px;
}
.mini-move{
  padding:10px 0;
  border-bottom:1px solid var(--border);
}
.mini-move:last-child{border-bottom:0}
.mini-move span{
  display:block;
  color:var(--muted);
  font-size:13px;
  margin-top:3px;
}
.sale-card{
  background:#fff;
  border:1px solid var(--border);
  border-radius:16px;
  padding:16px;
  margin-bottom:14px;
}
.sale-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  padding-bottom:12px;
  border-bottom:1px solid var(--border);
}
.sale-total{
  font-size:22px;
  font-weight:700;
  color:#8f313a;
}
.sale-items{
  display:grid;
  gap:8px;
  padding-top:12px;
}
.sale-items div{
  display:flex;
  justify-content:space-between;
  gap:16px;
}
@media(max-width:1050px){
  .dashboard-grid{grid-template-columns:1fr}
}

.upload-row{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}
.upload-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:11px 14px;
  border-radius:12px;
  background:var(--pink-soft);
  color:#8f313a;
  font-weight:600;
  cursor:pointer;
  border:1px solid #efd6d8;
}
.small-btn{
  padding:10px 12px;
}
.foto-preview{
  min-height:120px;
  border:1px dashed var(--border);
  border-radius:14px;
  background:#fffafa;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  padding:8px;
}
.foto-preview img{
  max-width:100%;
  max-height:220px;
  object-fit:contain;
  border-radius:10px;
}

.auth-controls{
  display:flex;
  align-items:center;
  gap:10px;
}
.session-pill{
  display:inline-flex;
  align-items:center;
  padding:8px 11px;
  border-radius:999px;
  background:#f5efef;
  color:#6b6262;
  font-size:13px;
}
.login-error{
  min-height:20px;
  margin:0;
  color:#a3313a;
  font-size:13px;
}
.admin-hidden{
  display:none !important;
}
#conexionEstado.online{
  color:#4e7e31;
}
#conexionEstado.error{
  color:#a3313a;
}

.diagnostico{
  margin:-8px 0 18px;
  padding:10px 13px;
  border-radius:12px;
  font-size:13px;
  border:1px solid var(--border);
  background:#fff;
}
.diag-ok{
  background:var(--green-soft);
  color:#3f6f28;
  border-color:#d8e8cc;
}
.diag-error{
  background:#fdeaea;
  color:#9a3434;
  border-color:#f3cccc;
}
