a{color:inherit;text-decoration:none;pointer-events:none;cursor:default;}
:root{--navy:#1a2a4a;--navy2:#1e3259;--orange:#f47920;--green:#4caf50;--cyan:#29a8e0;--white:#f5f7fa;--gray:#8a9bb0;--border:#243555;--danger:#ef4444;--card:#162040;}
body.light-mode{--navy:#eef2fc;--navy2:#dde5f7;--white:#1a2a4a;--gray:#5a6a80;--border:#bfcde8;--card:#ffffff;}
body.light-mode .btn-export-pdf-stock{background:#ffffff !important;}
body.light-mode .btn-hist-del{background:#ffffff !important;border-color:rgb(239,68,68) !important;color:rgb(239,68,68) !important;}

/* ── Login siempre en modo oscuro, sin importar el tema ── */
#login-screen,
#login-screen *{
  --navy:#1a2a4a;
  --navy2:#1e3259;
  --white:#f5f7fa;
  --gray:#8a9bb0;
  --border:#243555;
  --card:#162040;
  --orange:#f47920;
  --danger:#ef4444;
  color-scheme: dark;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{background:transparent;color:var(--white);font-family:'DM Sans',sans-serif;min-height:100vh;}

/* ── Toggle tema ── */
.theme-toggle{background:none;border:1px solid var(--border);border-radius:20px;color:var(--gray);padding:.28rem .75rem;font-size:.78rem;cursor:pointer;transition:color .2s,border-color .2s;display:flex;align-items:center;gap:.35rem;white-space:nowrap;flex-shrink:0;}
.theme-toggle:hover{border-color:var(--orange);color:var(--orange);}

/* ── Animación entrada de filas ── */
tbody tr{opacity:1;}

/* ── Barra de stock ── */
.stock-bar-wrap{display:flex;flex-direction:column;justify-content:center;min-width:100px;}
.stock-bar-top{display:flex;align-items:center;gap:6px;}
.stock-bar-row{display:flex;align-items:center;gap:6px;}
.stock-num{font-size:.78rem;font-weight:600;min-width:22px;text-align:left;}
.stock-num.ok{color:#4caf50;}.stock-num.low{color:var(--orange);}.stock-num.out{color:var(--danger);}
.stock-bar-bg{height:5px;background:var(--border);border-radius:3px;overflow:hidden;flex:1;}
.stock-bar-fill{height:100%;border-radius:3px;transition:width .5s ease;}
.stock-bar-fill.ok{background:#4caf50;}
.stock-bar-fill.low{background:var(--orange);}
.stock-bar-fill.out{background:var(--danger);}
header{background:var(--navy2);border-bottom:2px solid var(--orange);padding:0 2rem;display:flex;align-items:center;justify-content:space-between;height:66px;position:sticky;top:0;z-index:100;}
.logo{display:flex;align-items:center;gap:.7rem;}
.logo-text{font-family:'Syne',sans-serif;font-weight:700;font-size:1.45rem;letter-spacing:0;color:var(--white);line-height:1;}
.logo-text span{color:var(--white);}
.logo-sub{font-size:.6rem;color:var(--gray);letter-spacing:.08em;display:block;margin-top:2px;text-transform:none;font-family:'DM Sans',sans-serif;}
.nav-tabs{display:flex;gap:.2rem;}
.tab-btn{background:none;border:none;border-bottom:2px solid transparent;color:var(--gray);font-family:'DM Sans',sans-serif;font-size:.85rem;padding:.45rem 1.1rem;cursor:pointer;transition:.2s;font-weight:500;}
.tab-btn:hover{color:var(--white);}
.tab-btn.active{color:var(--orange);border-bottom-color:var(--orange);}
main{max-width:1200px;margin:0 auto;padding:2rem;position:relative;z-index:1;}
.section{display:none;}.section.active{display:block;}
.dash-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:.3rem;}
.dash-card-label{font-size:.75rem;color:var(--gray);font-weight:500;text-transform:uppercase;letter-spacing:.04em;}
.dash-card-value{font-family:'Syne',sans-serif;font-size:1.6rem;font-weight:500;color:var(--white);}
.dash-card-sub{font-size:.75rem;color:var(--gray);}
.dash-recent-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--border);font-size:.83rem;}
.dash-recent-item:last-child{border-bottom:none;}
.dash-critico-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.5rem;}
.dash-critico-item{background:var(--navy2);border:1px solid var(--border);border-radius:8px;padding:.5rem .75rem;font-size:.78rem;display:flex;justify-content:space-between;align-items:center;}
.dash-critico-stock{font-family:'Syne',sans-serif;font-weight:500;color:var(--danger);}
.page-title{font-family:system-ui;font-size:1.75rem;font-weight:600;margin-bottom:1.4rem;}
.page-title span{color:var(--white);}
.search-bar{width:100%;background:var(--card);border:1px solid var(--border);border-radius:8px;padding:.7rem 1rem;color:var(--white);font-family:'DM Sans',sans-serif;font-size:.9rem;margin-bottom:1.4rem;outline:none;transition:.2s;}
.search-bar:focus{border-color:var(--orange);}.search-bar::placeholder{color:var(--gray);}
.table-wrap{overflow-x:auto;border-radius:10px;border:1px solid var(--border);}
table{width:100%;border-collapse:collapse;font-size:.84rem;background:var(--card);}
thead tr{background:var(--navy2);}
th{padding:.7rem 1rem;text-align:center;color:var(--gray);font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);white-space:nowrap;}
td{padding:.65rem 1rem;border-bottom:1px solid var(--border);vertical-align:middle;text-align:center;background:var(--card);}
tr:last-child td{border-bottom:none;}
tbody tr:hover td{background:rgba(244,121,32,.06);}
.badge{display:inline-block;padding:.2rem .65rem;border-radius:20px;font-size:.72rem;font-weight:700;}
.badge-ok{background:rgba(76,175,80,.15);color:#4caf50;}
.btn-export{background:rgba(76,175,80,.1);border:1px solid rgb(76,175,80);color:rgb(76,175,80);border-radius:7px;cursor:pointer;display:flex;align-items:center;gap:.35rem;font-weight:500;transition:.2s;white-space:nowrap;}
.btn-text-short{display:none;}
.btn-export:hover{background:rgba(76,175,80,.22);}
body.light-mode .btn-export{background:#fff;}
.badge-low{background:rgba(244,121,32,.18);color:var(--orange);}
.badge-out{background:rgba(239,68,68,.15);color:var(--danger);}
.stock-input{width:46px;background:transparent;border:none;color:var(--white);font-size:.88rem;font-weight:600;text-align:center;font-family:system-ui;}
.stock-input:focus{outline:none;}
.stock-input::-webkit-inner-spin-button,.stock-input::-webkit-outer-spin-button{-webkit-appearance:none;}
.stock-ctrl{display:inline-flex;align-items:center;background:var(--navy2);border:1px solid var(--border);border-radius:7px;overflow:hidden;}
.stock-ctrl button{background:transparent;border:none;color:var(--gray);font-size:1.1rem;width:26px;height:30px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.15s;line-height:1;}
.stock-ctrl button:hover{background:rgba(244,121,32,.15);color:var(--orange);}
.btn-save{background:var(--orange);border:none;color:#fff;padding:.25rem .55rem;border-radius:5px;cursor:pointer;font-size:.78rem;margin-left:6px;}
.btn-save:hover{background:#d4620a;}
.cotiz-grid{display:grid;grid-template-columns:1fr 370px;gap:1.5rem;align-items:start;}
@media(max-width:900px){.cotiz-grid{grid-template-columns:1fr;}}
.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1.25rem;}
.card-title{font-family:'Syne',sans-serif;font-size:.95rem;font-weight:500;margin-bottom:1rem;color:var(--orange);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.7rem;}
.form-row.single{grid-template-columns:1fr;}
.pn-error{display:none;font-size:.72rem;color:#ef4444;margin-top:.25rem;}
.tipo-cotiz-wrap{display:flex;align-items:center;justify-content:space-between;margin-bottom:.9rem;gap:.5rem;}
.tipo-cotiz-label{font-size:.78rem;color:var(--gray);}
.tipo-cotiz-btns{display:flex;gap:.3rem;}
.tipo-btn{background:transparent;border:1px solid var(--border);color:var(--gray);border-radius:6px;padding:.25rem .75rem;font-size:.78rem;cursor:pointer;transition:.15s;}
.tipo-btn.active{background:var(--orange);border-color:var(--orange);color:#fff;font-weight:600;}
.pn-error.visible{display:block;}
input.input-error{border-color:#ef4444 !important;}
label{display:block;font-size:.72rem;color:var(--gray);margin-bottom:.28rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;}
input[type=text],input[type=email]{width:100%;background:var(--navy2);border:1px solid var(--border);border-radius:6px;color:var(--white);padding:.52rem .75rem;font-family:'DM Sans',sans-serif;font-size:.87rem;outline:none;transition:.2s;}
input[type=text]:focus,input[type=email]:focus{border-color:var(--orange);}
input::placeholder{color:#4a5a72;}
.prod-search-wrap{position:relative;margin-bottom:.75rem;}
.prod-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--navy2);border:1px solid var(--orange);border-radius:8px;max-height:240px;overflow-y:auto;z-index:200;display:none;}
.prod-dropdown.open{display:block;}
.prod-item{padding:.6rem 1rem;cursor:pointer;font-size:.84rem;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);transition:.15s;}
.prod-item:last-child{border-bottom:none;}
.prod-item:hover{background:rgba(244,121,32,.1);}
.prod-item.no-stock{opacity:.4;pointer-events:none;}
.p-name{font-weight:500;}.p-meta{font-size:.72rem;color:var(--gray);margin-top:1px;}
.p-price{color:var(--orange);font-weight:700;font-size:.83rem;white-space:nowrap;margin-left:.5rem;}
.items-list{display:flex;flex-direction:column;gap:.45rem;margin-bottom:1rem;min-height:60px;}
.item-row{background:var(--navy2);border:1px solid var(--border);border-radius:7px;padding:.5rem .75rem;display:flex;align-items:center;gap:.5rem;font-size:.82rem;}
.i-name{flex:1;font-weight:500;line-height:1.3;}.i-um{color:var(--gray);font-size:.72rem;min-width:50px;}
.i-qty{width:52px;background:var(--navy);border:1px solid var(--border);border-radius:5px;color:var(--white);padding:.2rem .35rem;font-size:.82rem;text-align:center;}
.i-price{color:var(--orange);min-width:78px;text-align:right;font-weight:700;}
.i-del{background:none;border:none;color:var(--danger);cursor:pointer;font-size:.95rem;padding:0 .2rem;opacity:.6;}
.i-del:hover{opacity:1;}
.empty-msg{color:var(--gray);font-size:.82rem;text-align:center;padding:1.2rem 0;}
.totals-box{background:var(--navy2);border-radius:8px;padding:.9rem 1rem;margin-bottom:1rem;}
.total-row{display:flex;justify-content:space-between;font-size:.84rem;margin-bottom:.35rem;color:var(--gray);}
.total-row span:last-child{color:var(--white);}
.total-row.main{font-family:'Syne',sans-serif;font-size:1.05rem;font-weight:500;border-top:1px solid var(--border);padding-top:.5rem;margin-top:.4rem;color:var(--white);}
.total-row.main span:last-child{color:var(--orange);font-size:1.15rem;}
.btn-gen{width:100%;background:linear-gradient(135deg,#c05610,var(--orange));border:none;color:#fff;font-family:system-ui;font-weight:500;font-size:.95rem;letter-spacing:.06em;padding:.85rem;border-radius:8px;cursor:pointer;transition:.2s;}
.btn-gen:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(244,121,32,.4);}
.hist-item{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:1rem 1.25rem;margin-bottom:.4rem;display:flex;align-items:center;gap:1rem;cursor:pointer;transition:.18s;}
.hist-item:hover{border-color:var(--orange);box-shadow:0 2px 12px rgba(244,121,32,.10);}
.hist-num{font-family:'Syne',sans-serif;font-weight:700;color:var(--orange);min-width:72px;}
.hist-info{flex:1;}.hist-client{font-weight:500;font-size:.9rem;}.hist-date{color:var(--gray);font-size:.76rem;margin-top:2px;}
.hist-total{font-family:'Syne',sans-serif;font-weight:700;color:#4caf50;white-space:nowrap;}
.hist-actions{display:flex;gap:.4rem;margin-left:.5rem;align-items:center;}
.btn-hist-del{background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.35);color:var(--danger);border-radius:6px;padding:.28rem .6rem;font-size:.7rem;cursor:pointer;transition:.15s;opacity:1;}
.btn-hist-del:hover{background:rgba(239,68,68,.12);border-color:var(--danger);opacity:1;}
.estado-badge{display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:600;border-radius:5px;padding:.18rem .55rem;border:1px solid transparent;cursor:pointer;transition:.15s;white-space:nowrap;}
.estado-badge:hover{filter:brightness(1.15);}
.estado-enviada{background:rgba(41,168,224,.15);color:var(--cyan);border-color:rgba(41,168,224,.3);}
.estado-aceptada{background:rgba(76,175,80,.15);color:#4caf50;border-color:rgba(76,175,80,.3);}
.estado-rechazada{background:rgba(239,68,68,.15);color:var(--danger);border-color:rgba(239,68,68,.3);}
.estado-facturada{background:rgba(244,121,32,.15);color:var(--orange);border-color:rgba(244,121,32,.3);}
.estado-pendiente{background:rgba(138,155,176,.12);color:var(--gray);border-color:var(--border);}
.btn-hist-expand{background:none;border:1px solid var(--border);color:var(--gray);border-radius:6px;padding:.30rem 1.2rem;font-size:.82rem;cursor:pointer;transition:.15s;}
.btn-hist-expand:hover{border-color:var(--orange);color:var(--orange);}
.hist-detail{display:none;background:var(--navy2);border:1px solid var(--border);border-top:none;border-radius:0 0 10px 10px;padding:.75rem 1.25rem;margin-top:-4px;margin-bottom:.4rem;font-size:.82rem;}
.hist-detail.open{display:block;}
.hist-detail th{color:var(--gray);font-size:.7rem;padding:.3rem .6rem;text-align:left;letter-spacing:.04em;}
.hist-detail td{padding:.3rem .6rem;border-bottom:1px solid var(--border);vertical-align:middle;text-align:left;}
.hist-detail td:first-child{white-space:nowrap;}
.hist-detail td:nth-child(3){text-align:center;}
.hist-detail td:nth-child(4){text-align:right;color:var(--orange);}
.hist-detail table{table-layout:fixed;border-collapse:collapse;}
.hist-detail tr:last-child td{border-bottom:none;}
.hist-filtro-btn{background:var(--navy2);border:1px solid var(--border);color:var(--gray);border-radius:20px;padding:.28rem .75rem;font-size:.76rem;font-weight:500;cursor:pointer;transition:.15s;font-family:'DM Sans',sans-serif;white-space:nowrap;}
.hist-filtro-btn:hover{border-color:var(--orange);color:var(--orange);}
.hist-filtro-btn.active{background:var(--orange);border-color:var(--orange);color:#fff;}
.mov-select-wrap{position:relative;flex-shrink:0;}
.mov-select-btn{display:flex;align-items:center;justify-content:space-between;gap:.5rem;background:var(--card);border:1px solid var(--border);color:var(--white);border-radius:8px;padding:.45rem .75rem;font-family:'DM Sans',sans-serif;font-size:.82rem;cursor:pointer;transition:.2s;white-space:nowrap;min-width:140px;user-select:none;}
.mov-select-btn:hover{border-color:var(--orange);}
.mov-select-btn.open{border-color:var(--orange);}
.mov-select-btn svg{transition:.2s;flex-shrink:0;}
.mov-select-btn.open svg{transform:rotate(180deg);}
.mov-select-drop{display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--navy2);border:1px solid var(--orange);border-radius:8px;z-index:500;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.3);}
.mov-select-drop.open{display:block;}
.mov-select-opt{padding:.55rem 1rem;font-size:.84rem;font-family:'DM Sans',sans-serif;color:var(--gray);cursor:pointer;transition:.15s;}
.mov-select-opt:hover{background:rgba(244,121,32,.1);color:var(--white);}
.est-select-wrap{position:relative;flex-shrink:0;}
.est-select-btn{display:inline-flex;align-items:center;gap:.35rem;font-size:.72rem;font-weight:600;border-radius:5px;padding:.22rem .5rem;border:1px solid transparent;cursor:pointer;transition:.15s;white-space:nowrap;user-select:none;}
.est-select-btn:hover{border-color:rgba(255,255,255,.6);}
.est-select-btn.open{border-color:rgba(255,255,255,.6);}
.est-select-btn svg{transition:.2s;flex-shrink:0;opacity:.7;}
.est-select-btn.open svg{transform:rotate(180deg);}
.est-select-drop{display:none;position:absolute;top:calc(100% + 4px);right:0;min-width:150px;background:var(--navy2);border:1px solid var(--border);border-radius:8px;z-index:600;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.4);}
.est-select-drop.open{display:block;}
.est-select-opt{display:flex;align-items:center;gap:.5rem;padding:.5rem .85rem;font-size:.8rem;font-family:'DM Sans',sans-serif;color:var(--gray);cursor:pointer;transition:.15s;white-space:nowrap;}
.est-select-opt:hover{background:rgba(244,121,32,.08);color:var(--white);}
.est-select-opt.active{font-weight:600;}
.mov-select-opt.selected{color:var(--orange);font-weight:600;}
.hist-resumen-chip{display:flex;align-items:center;gap:.4rem;background:var(--navy2);border:1px solid var(--border);border-radius:8px;padding:.3rem .7rem;font-size:.76rem;font-family:'DM Sans',sans-serif;}
.hist-resumen-chip strong{color:var(--white);}
.hist-no-results{color:var(--gray);font-size:.88rem;text-align:center;padding:2rem 0;}
.hist-search-wrap{margin-bottom:1.2rem;display:flex;gap:.7rem;align-items:center;}
.hist-search-btns{display:flex;gap:.7rem;align-items:center;flex-shrink:0;}
.hist-count{font-size:.78rem;color:var(--gray);white-space:nowrap;}
.hist-total{font-family:'Syne',sans-serif;font-weight:700;color:#4caf50;white-space:nowrap;}
#toast{position:fixed;bottom:2rem;right:2rem;background:#4caf50;color:#fff;padding:.7rem 1.2rem;border-radius:8px;font-size:.84rem;font-weight:500;opacity:0;transform:translateY(10px);transition:.3s;pointer-events:none;z-index:9999;}
#toast.show{opacity:1;transform:translateY(0);} #toast.err{background:var(--danger);}
::-webkit-scrollbar{width:5px;height:5px;} ::-webkit-scrollbar-track{background:var(--navy);} ::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px;}
.btn-edit-emisor{background:none;border:1px solid var(--border);color:var(--gray);border-radius:6px;padding:.25rem .7rem;font-size:.72rem;cursor:pointer;transition:.2s;margin-top:.6rem;width:100%;}
.btn-edit-emisor:hover{border-color:var(--orange);color:var(--orange);}
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:1000;align-items:center;justify-content:center;}
.modal-overlay.open{display:flex;}
.modal{background:var(--navy2);border:1px solid var(--border);border-radius:14px;padding:1.5rem;width:100%;max-width:420px;box-shadow:0 20px 60px rgba(0,0,0,.5);}
.modal h3{font-family:'Syne',sans-serif;font-size:1rem;font-weight:700;color:var(--orange);margin-bottom:1.1rem;}
.modal-row{margin-bottom:.75rem;}
.modal-row label{display:block;font-size:.72rem;color:var(--gray);font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.28rem;}
.modal-row input{width:100%;background:var(--navy);border:1px solid var(--border);border-radius:6px;color:var(--white);padding:.52rem .75rem;font-family:'DM Sans',sans-serif;font-size:.87rem;outline:none;transition:.2s;}
.modal-row input:focus{border-color:var(--orange);}
.modal-btns{display:flex;gap:.5rem;margin-top:1.1rem;}
.modal-btns button{flex:1;padding:.6rem;border-radius:7px;font-family:'DM Sans',sans-serif;font-size:.85rem;font-weight:600;cursor:pointer;border:none;transition:.2s;}
.btn-modal-save{background:var(--orange);color:#fff;}
.btn-modal-save:hover{background:#d4620a;}
.btn-modal-cancel{background:var(--card);color:var(--gray);border:1px solid var(--border) !important;}
.btn-modal-cancel:hover{color:var(--white);}

/* Columnas de precio en tabla de stock — ocultas por defecto, visibles con clase en la sección */
.col-precio-neto,.col-precio-iva,.col-precio-total{display:none;}
.th-precio-neto,.th-precio-iva,.th-precio-total{display:none;}
#tab-stock.precios-visibles .col-precio-neto,
#tab-stock.precios-visibles .col-precio-iva,
#tab-stock.precios-visibles .col-precio-total{display:table-cell;}
#tab-stock.precios-visibles .th-precio-neto,
#tab-stock.precios-visibles .th-precio-iva,
#tab-stock.precios-visibles .th-precio-total{display:table-cell;}

/* ═══════════════════════════════════════════
   RESPONSIVE — Tablet y Móvil
═══════════════════════════════════════════ */

/* Prevenir overflow horizontal global sin romper scroll interno de tablas */
html{overflow-x:clip;}
body{overflow-x:clip;}

@media(max-width:768px){

  /* ── Header: logo + controles en fila 1, nav en fila 2 scrollable ── */
  header{flex-wrap:wrap;height:auto;padding:.6rem 1rem;gap:.4rem;}
  .logo{flex:1;min-width:0;}
  .nav-tabs{
    order:3;
    width:calc(100% + 2rem);
    margin:.3rem -1rem -.6rem;
    padding:.3rem 1rem 0;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    border-top:1px solid var(--border);
    gap:0;
  }
  .nav-tabs::-webkit-scrollbar{display:none;}
  .tab-btn{white-space:nowrap;padding:.5rem .9rem;font-size:.82rem;}

  /* ── Main ── */
  main{padding:1rem;}
  .page-title{font-size:1.35rem;margin-bottom:1rem;text-align:center;}

  /* ── Dashboard cards: 1 por fila en móvil ── */
  #dash-cards{grid-template-columns:1fr !important;}
  .dash-card-label{white-space:normal;}

  /* ── Formularios: 1 columna en móvil ── */
  .form-row{grid-template-columns:1fr;}
  .two-col-grid{grid-template-columns:1fr !important;}

  /* ── Login ── */
  #login-screen > div:not(canvas){
    margin:1rem;
    padding:2rem 1.5rem;
    max-width:calc(100vw - 2rem);
    width:calc(100vw - 2rem);
  }

  /* ── Modales: margen y ancho máximo ── */
  #modal-editar-producto > div,
  #modal-nuevo-producto > div,
  #modal-confirm-logout > div,
  #modal-confirm-stock > div,
  #modal-recuperacion > div,
  #modal-emisor > div,
  #modal-recepcion > div{
    margin:.75rem;
    max-width:calc(100vw - 1.5rem);
    width:calc(100vw - 1.5rem);
  }
  .modal{max-width:calc(100vw - 2rem);margin:1rem;}

  /* ── Toast: ancho completo centrado ── */
  #toast{left:1rem;right:1rem;bottom:1rem;text-align:center;}

  /* ── Historial ── */
  .hist-item{flex-wrap:wrap;}
  .hist-actions{margin-left:0;width:100%;justify-content:flex-end;}
  .hist-search-wrap{flex-wrap:nowrap;gap:.4rem;}
  .hist-search-btns{gap:.25rem;}
  .hist-search-btns .btn-export{padding:.28rem .45rem !important;}
  .hist-detail{padding:.75rem .5rem;}
  .hist-detail td:first-child,.hist-detail th:first-child{display:none;padding:0;}
  .hist-detail table{table-layout:auto !important;width:100% !important;}
  .hist-detail th:nth-child(2),.hist-detail td:nth-child(2){padding-left:25px;padding-right:25px;text-align:justify;text-align-last:justify;}
  .hist-detail th:nth-child(3),.hist-detail td:nth-child(3){white-space:nowrap;padding-left:30px;padding-right:30px;}
  .hist-detail th:nth-child(4),.hist-detail td:nth-child(4){white-space:nowrap;padding-left:32px;padding-right:32px;text-align:center;}
  .hist-num{min-width:auto;}
  #hist-estado-resumen{justify-content:center;}
  #hist-filtros-estado{justify-content:center;}
  .btn-text-short{display:inline;}
  .btn-text-full{display:none;}

  /* ── Items de cotización ── */
  .item-row{flex-wrap:wrap;}
  .i-name{min-width:100%;}

  /* ── Botones de controles en header más compactos ── */
  .theme-toggle{padding:.28rem .55rem;font-size:.72rem;}
}

@media(max-width:480px){
  header{padding:.5rem .75rem;}
  .logo-text{font-size:1.15rem;}
  .logo-sub{display:none;}
  main{padding:.75rem;}
  .tab-btn{padding:.45rem .7rem;font-size:.78rem;}
  .page-title{font-size:1.1rem;}
  #theme-btn{min-width:auto !important;}

  /* ── Stock: ocultar columna Unidad de Medida ── */
  .col-stock-um, .th-stock-um{ display:none !important; }

  /* ── Stock: en móvil ocultar +/- y mostrar solo número ── */
  .stock-ctrl{ display:none !important; }
  .stock-num-mobile{ display:inline !important; }
  /* Ocultar th Cantidad (queda solo el número) */
  #tab-stock thead tr th:nth-child(7){ font-size:.6rem; }

  /* ── Stock: título + botones apilados ── */
  #tab-stock > div:first-child{ flex-direction:column !important; align-items:center !important; gap:.6rem; }
  #tab-stock > div:first-child > div:last-child{ display:flex !important; flex-wrap:wrap !important; gap:.4rem; width:100%; }
  #tab-stock > div:first-child > div:last-child button{ flex:1 1 calc(50% - .2rem); justify-content:center; min-width:0; }

  /* ── Descripción con ellipsis para no romper el layout ── */
  #stock-body td:nth-child(2){ max-width:160px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

  /* ── Dash cards: texto no se corta ── */
  .dash-card-label{ font-size:.68rem; }
  .dash-card-value{ font-size:1.35rem; }
  .hist-detail th:nth-child(2),.hist-detail td:nth-child(2){padding-left:26px;padding-right:26px;}
}

/* ── iPhone 16 Pro Max (430px) ── */
@media(min-width:391px) and (max-width:480px){
  .hist-detail th:nth-child(2),.hist-detail td:nth-child(2){padding-left:31px;padding-right:31px;}
  .hist-detail th:nth-child(3),.hist-detail td:nth-child(3){padding-left:45px;padding-right:45px;}
  .hist-detail th:nth-child(4),.hist-detail td:nth-child(4){padding-left:32px;padding-right:32px;}
  #theme-btn .btn-text-full{display:inline;}
  #theme-btn .btn-text-short{display:none;}
}
