/* ============================================================
 * SíVAMarket · Dark/Light Neumorphism · v1.0
 * Mismo lenguaje visual del landing y del KYC (neumorfismo +
 * gradiente naranja), con selector de tema claro/oscuro.
 * ============================================================ */

:root{
  --siva-orange:#FF4713;
  --siva-orange-dark:#D9380A;
  --siva-orange-soft:#FF6B3D;
  --siva-green:#2ECC81;
  --siva-red:#FF6B5B;

  --bg:#0E0D10;
  --panel:#18171B;
  --panel-2:#1F1E23;
  --line:#2A2830;
  --text-hi:#F5F2ED;
  --text-mid:#B4AFA8;
  --text-mute:#726D66;

  --shadow-out:8px 8px 18px rgba(0,0,0,.55), -6px -6px 14px rgba(255,255,255,.02);
  --shadow-out-sm:4px 4px 10px rgba(0,0,0,.5), -3px -3px 8px rgba(255,255,255,.02);
  --shadow-in:inset 3px 3px 8px rgba(0,0,0,.5), inset -2px -2px 6px rgba(255,255,255,.03);
  --shadow-in-sm:inset 2px 2px 6px rgba(0,0,0,.45), inset -2px -2px 5px rgba(255,255,255,.03);

  --grad-orange:linear-gradient(135deg, #FF5B24 0%, var(--siva-orange) 55%, #D9380A 100%);

  --radius-lg:22px;
  --radius-md:16px;
  --radius-sm:11px;
}

[data-theme="light"]{
  --bg:#EEEBE6;
  --panel:#EEEBE6;
  --panel-2:#F1EEE9;
  --line:#E0DBD3;
  --text-hi:#2B2823;
  --text-mid:#6E6860;
  --text-mute:#9C958B;
  --siva-green:#0FBE7E;
  --siva-red:#E5453A;

  --shadow-out:6px 6px 14px rgba(163,150,133,.42), -6px -6px 14px rgba(255,255,255,.9);
  --shadow-out-sm:3px 3px 8px rgba(163,150,133,.38), -3px -3px 8px rgba(255,255,255,.85);
  --shadow-in:inset 3px 3px 7px rgba(163,150,133,.4), inset -3px -3px 7px rgba(255,255,255,.88);
  --shadow-in-sm:inset 2px 2px 5px rgba(163,150,133,.36), inset -2px -2px 5px rgba(255,255,255,.85);
}

*{box-sizing:border-box; margin:0; padding:0;}
html{overflow-x:hidden; width:100%;}
html,body{height:100%;}
body{
  font-family:'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  background:var(--bg); color:var(--text-hi);
  -webkit-font-smoothing:antialiased; overflow-x:hidden; width:100%; min-height:100%;
  transition:background .2s ease, color .2s ease;
}
button{cursor:pointer; font-family:inherit;}
a{color:inherit; text-decoration:none;}
:focus-visible{outline:2px solid var(--siva-orange); outline-offset:2px;}
::-webkit-scrollbar{height:0; width:0;}

.screen{display:none; min-height:100vh;}
.screen.active{display:block;}
.hidden{display:none !important;}

/* ============================================================
   THEME TOGGLE
   ============================================================ */
.theme-toggle{
  position:relative; width:56px; height:30px; border-radius:20px;
  background:var(--panel-2); box-shadow:var(--shadow-in-sm); border:1px solid var(--line);
  display:flex; align-items:center; padding:3px; flex-shrink:0;
  transition:background .2s ease;
}
.theme-toggle .tt-thumb{
  position:absolute; top:3px; left:3px; width:22px; height:22px; border-radius:50%;
  background:var(--grad-orange); box-shadow:0 2px 6px rgba(0,0,0,.35);
  display:flex; align-items:center; justify-content:center; color:#fff;
  transition:transform .22s cubic-bezier(.4,0,.2,1);
}
[data-theme="light"] .theme-toggle .tt-thumb{transform:translateX(26px);}
.theme-toggle .tt-thumb svg{width:13px; height:13px;}
.theme-toggle .tt-icon{
  flex:1; display:flex; align-items:center; justify-content:center; color:var(--text-mute);
}
.theme-toggle .tt-icon svg{width:13px; height:13px;}

/* ============================================================
   LOGIN SCREEN
   ============================================================ */
#screen-login.active{
  display:flex; align-items:center; justify-content:center; padding:24px 20px 40px;
  position:relative;
}
.login-topbar{
  position:absolute; top:0; left:0; right:0; display:flex; justify-content:flex-end;
  padding:18px 20px;
}
.login-wrap{width:100%; max-width:400px; margin:0 auto;}

.brand{text-align:center; margin-bottom:30px;}
.brand-logo-wrap{
  width:84px; height:84px; border-radius:24px; margin:0 auto 16px;
  background:var(--panel); box-shadow:var(--shadow-out);
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.brand-logo{width:64px; height:64px; border-radius:16px; display:block;}
.brand h1{font-size:26px; font-weight:800; letter-spacing:.2px; color:var(--text-hi);}
.brand h1 span{color:var(--siva-orange);}
.subtitle{color:var(--text-mid); font-size:13.5px; margin-top:6px; font-weight:500;}

.tabs{
  display:grid; grid-template-columns:1fr 1fr; gap:4px;
  background:var(--panel-2); box-shadow:var(--shadow-in); border-radius:16px;
  padding:5px; margin-bottom:22px;
}
.tab{
  background:transparent; border:none; padding:11px; font-size:13.5px;
  border-radius:12px; font-weight:700; color:var(--text-mid); transition:all .15s ease;
}
.tab.active{background:var(--grad-orange); color:#fff; box-shadow:0 4px 12px rgba(255,71,19,.3);}

.tab-panel{display:none;}
.tab-panel.active{display:block;}

.field{margin-bottom:16px;}
.field label{
  display:block; font-size:12.5px; font-weight:700; color:var(--text-mid); margin-bottom:7px;
}
input, select, textarea{
  display:block; width:100%; background:var(--panel-2); box-shadow:var(--shadow-in);
  border:1.5px solid transparent; border-radius:var(--radius-md); padding:13px 15px;
  font-size:14.5px; font-family:inherit; color:var(--text-hi);
  transition:border-color .15s ease, background .15s ease;
}
input[hidden]{display:none;}
input::placeholder, textarea::placeholder{color:var(--text-mute);}
input:focus, select:focus, textarea:focus{outline:none; border-color:var(--siva-orange);}
textarea{resize:vertical;}

.password-field{position:relative;}
.password-field input{padding-right:46px;}
.pw-toggle{
  position:absolute; right:6px; top:50%; transform:translateY(-50%);
  width:34px; height:34px; border-radius:10px; border:none; background:transparent;
  display:flex; align-items:center; justify-content:center; color:var(--text-mute);
  transition:color .15s ease;
}
.pw-toggle:hover{color:var(--siva-orange);}
.pw-toggle svg{width:19px; height:19px;}
.pw-toggle .hidden{display:none;}

.checkbox-label{
  display:flex; align-items:center; gap:10px; margin:6px 0 18px; font-size:13.5px;
  color:var(--text-mid); font-weight:600; cursor:pointer; user-select:none; position:relative;
}
.checkbox-label input[type="checkbox"]{
  position:absolute; opacity:0; width:0; height:0;
}
.chk-box{
  width:22px; height:22px; border-radius:7px; background:var(--panel-2); box-shadow:var(--shadow-in-sm);
  display:flex; align-items:center; justify-content:center; flex-shrink:0; color:transparent;
  transition:background .15s ease, color .15s ease;
}
.chk-box svg{width:13px; height:13px;}
.checkbox-label input:checked + .chk-box{background:var(--grad-orange); color:#fff; box-shadow:none;}

.hint{font-size:12.5px; color:var(--text-mid); line-height:1.6; margin-bottom:18px;}

.registro-card{
  background:var(--panel-2); border-radius:var(--radius-lg); box-shadow:var(--shadow-out-sm);
  padding:22px 20px; text-align:center;
}
.registro-icon{
  width:52px; height:52px; border-radius:16px; margin:0 auto 14px;
  background:rgba(46,204,129,.14); color:var(--siva-green);
  display:flex; align-items:center; justify-content:center;
}
.registro-icon svg{width:26px; height:26px;}
.registro-card .hint{margin-bottom:16px;}

.error-box{
  background:rgba(255,107,91,.14); color:var(--siva-red); padding:12px 14px; border-radius:var(--radius-md);
  margin-bottom:16px; font-size:13px; font-weight:600; display:none;
}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:14px 22px; border-radius:var(--radius-md); border:none;
  font-size:14.5px; font-weight:700; font-family:inherit; transition:filter .15s ease, transform .1s ease;
}
.btn:active{transform:scale(.98);}
.btn-primary{background:var(--grad-orange); color:#fff; box-shadow:0 6px 16px rgba(255,71,19,.3);}
.btn-primary:hover:not(:disabled){filter:brightness(1.08);}
.btn-outline{
  background:var(--panel-2); box-shadow:var(--shadow-out-sm); color:var(--text-hi);
  border:1px solid var(--line);
}
.btn-outline:hover:not(:disabled){color:var(--siva-orange);}
.btn:disabled{opacity:.55; cursor:not-allowed;}
.btn-block{width:100%; margin-top:6px;}
.btn-sm{padding:9px 14px; font-size:13px;}
.btn svg{width:16px; height:16px; flex-shrink:0;}

/* ============================================================
   DASHBOARD TOPBAR
   ============================================================ */
.topbar{
  position:sticky; top:0; z-index:100;
  background:rgba(14,13,16,.9); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  display:flex; justify-content:space-between; align-items:center;
  padding:14px 18px;
}
[data-theme="light"] .topbar{background:rgba(238,235,230,.9);}
.topbar-brand{display:flex; align-items:center; gap:12px; min-width:0;}
.topbar-brand img{width:42px; height:42px; border-radius:12px; box-shadow:var(--shadow-out-sm); flex-shrink:0;}
.topbar-brand strong{display:block; font-size:14.5px; font-weight:700; color:var(--text-hi);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:180px;}
.topbar-brand .badge{
  display:inline-block; background:rgba(255,71,19,.14); color:var(--siva-orange-soft);
  padding:2px 9px; border-radius:8px; font-size:10.5px; font-weight:800;
  text-transform:capitalize; margin-top:3px; letter-spacing:.2px;
}
.topbar-actions{display:flex; align-items:center; gap:10px; flex-shrink:0;}
.icon-btn{
  background:var(--panel-2); box-shadow:var(--shadow-out-sm); border:none;
  width:40px; height:40px; border-radius:12px; display:flex; align-items:center; justify-content:center;
  color:var(--text-mid); transition:color .15s ease;
}
.icon-btn:hover{color:var(--siva-orange);}
.icon-btn svg{width:18px; height:18px;}

.tab-nav{
  display:flex; gap:6px; background:var(--bg); border-bottom:1px solid var(--line);
  padding:12px 18px; overflow-x:auto;
}
.tab-nav-btn{
  background:var(--panel-2); box-shadow:var(--shadow-out-sm); border:1px solid transparent;
  display:flex; align-items:center; gap:8px;
  padding:10px 16px; font-size:13px; font-weight:700; color:var(--text-mid);
  border-radius:20px; white-space:nowrap; transition:all .15s ease;
}
.tab-nav-btn svg{width:15px; height:15px;}
.tab-nav-btn.active{background:var(--grad-orange); color:#fff; box-shadow:0 4px 12px rgba(255,71,19,.28);}
.counter{
  display:inline-flex; align-items:center; justify-content:center;
  background:rgba(0,0,0,.2); color:inherit; min-width:19px; height:19px;
  padding:0 5px; border-radius:10px; font-size:11px; font-weight:800;
}
.tab-nav-btn:not(.active) .counter{background:var(--siva-orange); color:#fff;}

.view{display:none; padding:18px;}
.view.active{display:block;}

/* ============================================================
   KANBAN DE PEDIDOS
   ============================================================ */
.orders-columns{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:14px; padding-bottom:10px;
}
.orders-col{min-width:0;}
.orders-col h3{
  display:flex; align-items:center; gap:9px; margin-bottom:12px; font-size:13.5px;
  font-weight:800; color:var(--text-hi);
}
.col-icon{
  width:28px; height:28px; border-radius:9px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center; color:#fff;
}
.col-icon svg{width:15px; height:15px;}
.col-icon.col-new{background:linear-gradient(135deg,#FF6B3D,var(--siva-orange));}
.col-icon.col-accepted{background:linear-gradient(135deg,#5A8CFF,#3A5FD9);}
.col-icon.col-preparing{background:linear-gradient(135deg,#FFB13D,#E58A0F);}
.col-icon.col-ready{background:linear-gradient(135deg,#B45AFF,#7A32C4);}
.col-icon.col-transit{background:linear-gradient(135deg,#33D68F,#1E9E63);}

.orders-list{display:flex; flex-direction:column; gap:12px; min-height:60px;}
.col-empty{
  background:var(--panel); box-shadow:var(--shadow-in-sm); border-radius:var(--radius-md);
  padding:18px 12px; text-align:center; font-size:12px; color:var(--text-mute); font-weight:600;
}

/* ---------- ORDER CARD ---------- */
.order-card{
  background:var(--panel); border-radius:var(--radius-md); box-shadow:var(--shadow-out-sm);
  overflow:hidden;
}
.order-card-header{
  display:flex; justify-content:space-between; align-items:center;
  padding:11px 14px; background:var(--panel-2); font-size:12.5px;
}
.order-card-header strong{color:var(--siva-orange); font-weight:800;}
.order-card-header span{color:var(--text-mute); font-size:11.5px; font-weight:600;}
.order-card-body{padding:13px 14px;}
.order-cliente{display:flex; flex-direction:column; gap:6px; margin-bottom:11px;}
.order-cliente-row{
  display:flex; align-items:flex-start; gap:8px; font-size:12px; color:var(--text-mid); font-weight:600;
}
.order-cliente-row svg{width:14px; height:14px; flex-shrink:0; margin-top:1px; color:var(--siva-orange-soft);}
.order-items{list-style:none; font-size:13px; margin-bottom:11px;}
.order-items li{
  display:flex; justify-content:space-between; gap:8px;
  padding:5px 0; border-bottom:1px dashed var(--line); color:var(--text-hi); font-weight:600;
}
.order-items li:last-child{border-bottom:none;}
.order-items li span{color:var(--text-mute); font-size:12px; font-weight:600; flex-shrink:0;}
.order-totals{border-top:1px solid var(--line); padding-top:9px; font-size:12px;}
.order-totals > div{display:flex; justify-content:space-between; padding:2px 0; color:var(--text-mid); font-weight:600;}
.order-totals .total{font-weight:800; color:var(--text-hi); font-size:14px; margin-top:5px;}

/* Monto a confirmar en bolívares por pago móvil/transferencia. Distinto de
   los subtotales en Ref de arriba: este es el que el comercio debe cruzar
   contra lo que realmente le llegó a su cuenta/pago móvil. */
.order-cobro-bcv{
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  background:rgba(255,159,28,.12); color:var(--siva-orange); padding:9px 10px;
  border-radius:var(--radius-sm); font-size:12px; font-weight:700; margin-top:8px;
}
.order-cobro-bcv strong{font-size:15px; font-weight:800;}

.order-codigo-retiro{
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  background:rgba(46,204,113,.12); color:#2ECC71; padding:9px 10px; border-radius:var(--radius-sm);
  font-size:12px; font-weight:700; margin-bottom:11px; line-height:1.4;
}
.order-codigo-retiro strong{font-size:16px; letter-spacing:2px; font-weight:800;}
.order-notas{
  display:flex; align-items:flex-start; gap:7px;
  background:rgba(255,177,61,.12); color:#E5A23D; padding:9px 10px; border-radius:var(--radius-sm);
  font-size:12px; font-weight:600; margin-top:10px; line-height:1.4;
}
.order-notas svg{width:14px; height:14px; flex-shrink:0; margin-top:1px;}
.order-card-actions{
  padding:11px 14px; background:var(--panel-2); border-top:1px solid var(--line);
  display:flex; gap:8px; flex-wrap:wrap;
}
.order-card-actions .btn{flex:1; min-width:100px;}
.order-card-actions .action-hint{
  display:flex; align-items:center; justify-content:center; gap:7px;
  font-size:12px; color:var(--text-mute); font-weight:700; padding:8px 0; width:100%;
}
.order-card-actions .action-hint svg{width:14px; height:14px;}

/* ============================================================
   CATALOGO
   ============================================================ */
.catalog-header{
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:18px; flex-wrap:wrap; gap:12px;
}
.catalog-header h2{font-size:17px; font-weight:800; color:var(--text-hi);}
.catalog-list{display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:14px;}
.item-card{
  background:var(--panel); border-radius:var(--radius-md); box-shadow:var(--shadow-out-sm);
  padding:16px; display:flex; flex-direction:column; gap:12px; transition:opacity .15s ease;
}
.item-card.unavailable{opacity:.55;}
.item-thumb{
  width:100%; height:120px; border-radius:var(--radius-sm); background:var(--panel-2) center/cover no-repeat;
  box-shadow:var(--shadow-in); display:flex; align-items:center; justify-content:center;
}
.item-thumb svg{width:30px; height:30px; color:var(--text-mute);}
.item-info strong{font-size:14.5px; font-weight:800; display:block; margin-bottom:4px; color:var(--text-hi);}
.item-info p{font-size:12.5px; color:var(--text-mid); margin-bottom:10px; line-height:1.5;}
.item-meta{display:flex; justify-content:space-between; align-items:center;}
.item-meta .price{font-weight:800; color:var(--siva-orange); font-size:14.5px;}
.item-meta .price-ves-ref{color:var(--text-mute); font-size:12px;}
.badge{padding:3px 9px; border-radius:8px; font-size:10.5px; font-weight:800;}
.badge-ok{background:rgba(46,204,129,.16); color:var(--siva-green);}
.badge-off{background:rgba(255,107,91,.16); color:var(--siva-red);}
.item-actions{display:flex; gap:8px;}
.item-actions .btn{flex:1;}
.item-actions .btn-icon{flex:none; width:40px; padding:9px; flex-shrink:0;}
.btn-icon{display:inline-flex; align-items:center; justify-content:center;}
.btn-danger{background:rgba(255,107,91,.14); color:var(--siva-red); border:1px solid rgba(255,107,91,.3);}
.btn-danger:hover:not(:disabled){background:var(--siva-red); color:#fff;}
.empty{color:var(--text-mute); text-align:center; padding:50px 20px; font-size:13.5px; font-weight:600;}

/* ============================================================
   MODAL
   ============================================================ */
.modal{
  position:fixed; inset:0; z-index:1000; background:rgba(0,0,0,.6); backdrop-filter:blur(2px);
  display:flex; align-items:center; justify-content:center; padding:20px;
}
.modal.hidden{display:none;}
.modal-content{
  background:var(--panel); width:100%; max-width:460px; border-radius:var(--radius-lg);
  max-height:90vh; overflow-y:auto; box-shadow:0 20px 60px rgba(0,0,0,.5);
}
.modal-content header{
  display:flex; justify-content:space-between; align-items:center;
  padding:18px 20px; border-bottom:1px solid var(--line);
}
.modal-content header h2{font-size:16.5px; font-weight:800; color:var(--text-hi);}
.close-btn{
  background:var(--panel-2); box-shadow:var(--shadow-out-sm); border:none;
  width:34px; height:34px; border-radius:10px; display:flex; align-items:center; justify-content:center;
  color:var(--text-mid);
}
.close-btn svg{width:15px; height:15px;}
.modal-content form{padding:20px;}

.track-modal-content{max-width:520px;}
.track-map-wrap{position:relative; width:100%; height:360px; background:var(--panel-2);}
.track-map-wrap #track-modal-map{position:absolute; inset:0;}
.track-modal-info{
  padding:14px 20px; font-size:13px; font-weight:600; color:var(--text-mid);
  border-top:1px solid var(--line); text-align:center;
}
.track-biker-row{display:flex; align-items:center; gap:10px; justify-content:center;}
.track-biker-row strong{color:var(--text-hi); font-weight:800;}

/* Fix: este ícono no tenía tamaño asignado y se renderizaba al tamaño
   default del navegador (~300px) — se veía como un disquete gigante. */
.order-cobro-bcv svg{width:14px; height:14px; flex-shrink:0;}
/* ============================================================
   FOTO DE PRODUCTO (modal item)
   ============================================================ */
.item-photo-wrap{display:flex; justify-content:center; margin-bottom:18px;}
.item-photo{
  position:relative; width:104px; height:104px; border-radius:var(--radius-lg);
  background:var(--panel-2) center/cover no-repeat; box-shadow:var(--shadow-in);
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.item-photo-placeholder{width:34px; height:34px; color:var(--text-mute);}
.item-photo.has-image .item-photo-placeholder{display:none;}
.item-photo-edit{
  position:absolute; right:6px; bottom:6px; width:30px; height:30px; border-radius:50%;
  background:var(--grad-orange); border:2px solid var(--panel); color:#fff;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.item-photo-edit svg{width:13px; height:13px;}
/* ============================================================
   PERFIL
   ============================================================ */
.perfil-banner-wrap{position:relative; margin-bottom:52px;}
.perfil-banner{
  position:relative; width:100%; height:160px; border-radius:var(--radius-lg);
  background:var(--panel-2) center/cover no-repeat; box-shadow:var(--shadow-in);
  overflow:hidden;
}
.perfil-banner-edit{
  position:absolute; top:12px; right:12px; width:36px; height:36px; border-radius:10px;
  background:rgba(14,13,16,.55); backdrop-filter:blur(3px); border:1px solid rgba(255,255,255,.15);
  display:flex; align-items:center; justify-content:center; color:#fff;
}
.perfil-banner-edit svg{width:16px; height:16px;}
.perfil-logo{
  position:absolute; left:20px; bottom:-40px; width:88px; height:88px; border-radius:50%;
  background:var(--panel-2) center/cover no-repeat; box-shadow:var(--shadow-out), 0 0 0 4px var(--bg);
  display:flex; align-items:flex-end; justify-content:flex-end;
}
.perfil-logo-edit{
  width:30px; height:30px; border-radius:50%; margin:2px;
  background:var(--grad-orange); border:2px solid var(--bg);
  display:flex; align-items:center; justify-content:center; color:#fff; flex-shrink:0;
}
.perfil-logo-edit svg{width:13px; height:13px;}
.perfil-form{max-width:460px;}
.perfil-horario-row{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.perfil-msg{
  font-size:12.5px; font-weight:600; margin-bottom:14px; display:none; padding:10px 12px;
  border-radius:var(--radius-sm);
}
.perfil-msg.ok{display:block; background:rgba(46,204,129,.14); color:var(--siva-green);}
.perfil-msg.error{display:block; background:rgba(255,107,91,.14); color:var(--siva-red);}

/* Métodos de pago del comercio */
.perfil-metodos-pago{max-width:460px; margin-top:8px;}
.perfil-metodos-pago h3{font-size:16px; font-weight:800; margin-bottom:4px;}
.metodos-pago-list{display:flex; flex-direction:column; gap:12px; margin-top:14px;}
.metodo-pago-card{
  background:var(--panel-2); border-radius:var(--radius-md); box-shadow:var(--shadow-out-sm);
  padding:14px 16px;
}
.metodo-pago-toggle{margin:0 0 0 0;}
.metodo-pago-nombre{font-size:14.5px; font-weight:700; color:var(--text-hi);}
.metodo-pago-fields{
  display:grid; gap:12px; max-height:0; overflow:hidden;
  opacity:0; transition:max-height .2s ease, opacity .2s ease, margin-top .2s ease;
}
.metodo-pago-card.activo .metodo-pago-fields{
  max-height:600px; opacity:1; margin-top:14px;
}
.metodo-pago-fields .field{margin-bottom:0;}