/* ============================================================
   Web versión 2 — rediseño Argenplas (nuevo manual de marca)
   Portado de "05 - Sidebar.html" (Claude Design).
   TODO scopeado bajo .v2-app para no afectar la v1.
   Pieza 1: shell (rail + barra superior) + Home (Tablero).
   ============================================================ */

.v2-app {
    --paper:#EAEEF2;
    --paper-2:#FFFFFF;
    --paper-3:#F1F5F8;
    --ink:#0F2A3A;
    --ink-2:#566873;
    --ink-3:#8D9AA4;
    --line:#DBE3E9;
    --line-2:#E7EDF1;
    --blue:#00AEEF;
    --blue-d:#0090C8;
    --navy:#045177;
    --cyan:#00AEEF;
    --sky:#DCEEF4;
    --amber:#E09A2A;
    --green:#2E8A57;
    --danger:#BC3B2C;
    --r:10px;

    width:100%;height:100vh;height:100dvh;
    /* El board mide exactamente el viewport (ver b2bV2Scaler), así que en el
       caso normal no hay scroll. El overflow-y queda como red de seguridad
       (JS todavía no corrió → fallback 1080). Horizontal siempre bloqueado. */
    overflow-x:hidden;overflow-y:auto;
    background:var(--paper);
    font-family:'Roboto',system-ui,sans-serif;
    color:var(--ink);
    -webkit-font-smoothing:antialiased;
}
/* Barra de scroll fina y discreta cuando el board no entra a lo alto. */
.v2-app::-webkit-scrollbar{width:9px;}
.v2-app::-webkit-scrollbar-thumb{background:var(--line);border-radius:9px;}
.v2-app::-webkit-scrollbar-thumb:hover{background:var(--ink-3);}

.v2-app *{box-sizing:border-box;}
.v2-app .mono{font-family:'JetBrains Mono',ui-monospace,monospace;}
.v2-app .disp{font-family:'Saira',sans-serif;}
.v2-app .eyebrow{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-3);}

/* ───── Board / shell ─────
   El diseño nació como canvas de 1920×1080, pero el board ya NO mide 1080 fijo:
   b2bV2Scaler (js/v2.js) calcula `zoom = anchoViewport/1920` y expone --v2-w y
   --v2-h (ancho/alto útiles REALES divididos por el zoom, descontada la barra
   del navegador). El board llena exactamente la ventana en cualquier resolución
   de la matriz (1920×1080 · 1366×768 · 1536×864 · 2560×1440 · 1680×1050) y en
   los tamaños intermedios: el marco (rail, barra superior, chat) queda siempre
   visible y las listas absorben la diferencia de alto con scroll interno. */
.v2-app .board{
    width:var(--v2-w,1920px);height:var(--v2-h,1080px);
    zoom:var(--v2-zoom,1);
    background:var(--paper);
    display:grid;grid-template-columns:268px 1fr 0px;
    position:relative;overflow:hidden;
    transition:grid-template-columns .22s ease;
}
.v2-app .board.chat-open{grid-template-columns:268px 1fr 384px;}
/* Grid de fondo removido a pedido (antes: engineering-paper muy sutil). */
/* Marca de agua del isologo — delante del grid, detrás de los componentes */
.v2-app .home-watermark{position:absolute;z-index:0;pointer-events:none;top:50%;right:30px;transform:translateY(-50%);opacity:0.94;}
/* Escala con el alto real del board (era 1140px fijo con el canvas de 1080). */
.v2-app .home-watermark img{display:block;height:calc(var(--v2-h,1080px) + 60px);width:auto;}

/* ───── Rail ───── */
.v2-app .rail{
    position:relative;z-index:2;border-right:1px solid var(--line);
    display:flex;flex-direction:column;min-height:0;
    background:linear-gradient(180deg,#F4F7FA 0%, #E8EEF3 100%);
}
.v2-app .rail-top{padding:24px 24px 18px;display:flex;align-items:flex-start;justify-content:space-between;}
.v2-app .logo-lock{width:200px;}
.v2-app .logo{display:block;width:100%;height:auto;}

.v2-app .nav{flex:1;overflow:auto;padding:6px 14px;}
.v2-app .nav::-webkit-scrollbar{width:0;}
.v2-app .nav-group-label{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:1.6px;text-transform:uppercase;color:var(--ink-3);padding:18px 10px 8px;display:flex;align-items:center;gap:8px;}
.v2-app .nav-group-label::after{content:"";flex:1;height:1px;background:var(--line);}

.v2-app .nav-item{
    display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:8px;cursor:pointer;
    color:var(--ink-2);font-size:14px;font-weight:500;position:relative;border-left:2px solid transparent;
    transition:background .15s,color .15s;text-decoration:none;
}
.v2-app .nav-item .ic{width:18px;height:18px;color:var(--ink-3);transition:color .15s;flex-shrink:0;}
.v2-app .nav-item:hover{background:var(--paper-3);color:var(--ink);}
.v2-app .nav-item:hover .ic{color:var(--ink-2);}
.v2-app .nav-item.active{background:#fff;color:var(--ink);font-weight:600;box-shadow:0 1px 2px rgba(19,33,43,0.06);border-left:2px solid var(--cyan);}
.v2-app .nav-item.active .ic{color:var(--blue);}
.v2-app .nav-item.inert{cursor:default;opacity:.95;}
.v2-app .online-dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px rgba(46,138,87,.16);flex-shrink:0;}
.v2-app .ai-trigger .ic{color:var(--blue);}
.v2-app .ai-trigger .online-dot{background:var(--blue);box-shadow:0 0 0 3px rgba(0,174,239,.16);}

.v2-app .rail-foot{padding:14px;border-top:1px solid var(--line);}
.v2-app .vendor{display:flex;align-items:center;gap:11px;padding:11px;border-radius:var(--r);background:var(--paper-2);border:1px solid var(--line-2);}
.v2-app .vendor .av{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--cyan));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12.5px;flex-shrink:0;}
.v2-app .vendor .nm{font-size:12.5px;font-weight:600;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.v2-app .vendor .rl{font-size:10.5px;color:var(--ink-3);font-family:'JetBrains Mono',monospace;letter-spacing:.5px;text-transform:uppercase;}
.v2-app .wsp{width:32px;height:32px;border-radius:8px;background:var(--green);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;text-decoration:none;}
.v2-app .wsp .ic{width:16px;height:16px;color:#fff;}

/* ───── Main ───── */
.v2-app .main{position:relative;z-index:1;display:flex;flex-direction:column;min-width:0;min-height:0;}
.v2-app .util{display:flex;align-items:center;gap:18px;padding:14px 40px;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 1px 3px rgba(15,42,58,0.04);position:relative;z-index:3;}
.v2-app .search{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:480px;max-width:42vw;display:flex;align-items:center;gap:10px;height:42px;padding:0 14px;border:1px solid var(--line);border-radius:11px;background:var(--paper-3);color:var(--ink-3);transition:border-color .15s,background .15s;}
.v2-app .search:focus-within{border-color:var(--blue);background:#fff;}
.v2-app .search .ic{width:16px;height:16px;color:var(--ink-3);}
.v2-app .search input{border:none;background:transparent;outline:none;font-family:'Roboto',sans-serif;font-size:14px;color:var(--ink);flex:1;}
.v2-app .search input::placeholder{color:var(--ink-3);}
.v2-app .search kbd{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--ink-3);border:1px solid var(--line);border-radius:4px;padding:2px 6px;background:#fff;}
.v2-app .util-r{margin-left:auto;display:flex;align-items:center;gap:8px;}
.v2-app .ibtn{width:38px;height:38px;border-radius:9px;border:1px solid transparent;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;transition:background .15s,border-color .15s;}
.v2-app .ibtn:hover{background:var(--paper-3);border-color:var(--line-2);}
.v2-app .ibtn .ic{width:18px;height:18px;color:var(--ink-2);}
.v2-app .nbubble{position:absolute;top:5px;right:5px;min-width:16px;height:16px;border-radius:999px;background:var(--navy);color:#fff;font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;display:flex;align-items:center;justify-content:center;padding:0 4px;}
.v2-app .uchip{display:flex;align-items:center;gap:10px;padding-left:8px;margin-left:2px;border-left:1px solid var(--line);cursor:pointer;position:relative;}
.v2-app .uchip .av{width:34px;height:34px;border-radius:9px;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12.5px;overflow:hidden;}
.v2-app .uchip .av img{width:100%;height:100%;object-fit:cover;}
.v2-app .uchip .nm{font-size:13px;font-weight:600;line-height:1.2;}
.v2-app .uchip .rl{font-size:11px;color:var(--ink-3);font-family:'JetBrains Mono',monospace;}

/* user dropdown */
.v2-app .udrop{position:absolute;top:calc(100% + 8px);right:0;width:230px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 40px rgba(15,42,58,.14);overflow:hidden;z-index:20;}
.v2-app .udrop-head{padding:13px 15px;border-bottom:1px solid var(--line-2);}
.v2-app .udrop-name{font-size:13.5px;font-weight:600;color:var(--ink);}
.v2-app .udrop-mail{font-size:11.5px;color:var(--ink-3);margin-top:2px;}
.v2-app .udrop-item{display:flex;align-items:center;gap:10px;width:100%;padding:11px 15px;border:none;background:none;font:inherit;font-size:13.5px;color:var(--ink-2);cursor:pointer;text-align:left;text-decoration:none;}
.v2-app .udrop-item:hover{background:var(--paper-3);color:var(--ink);}
.v2-app .udrop-item .ic{width:16px;height:16px;color:var(--ink-3);}

.v2-app .content{flex:1;min-height:0;padding:30px 40px 34px;display:flex;flex-direction:column;gap:26px;overflow:hidden;}

/* ───── Masthead ───── */
/* flex-shrink:0: con el alto del board ahora variable, si falta alto cede el
   ledger (scroll interno) y no la placa de cuenta corriente. */
.v2-app .masthead{display:grid;grid-template-columns:1fr 540px;gap:34px;align-items:stretch;flex-shrink:0;}
.v2-app .greet .h1{font-family:'Saira',sans-serif;font-size:54px;font-weight:700;letter-spacing:-1px;line-height:1;margin:12px 0 0;}
.v2-app .greet .sub{font-size:15px;color:var(--ink-2);margin-top:14px;max-width:440px;line-height:1.5;}
.v2-app .greet .sub b{color:var(--ink);font-weight:600;}
.v2-app .greet .sub .pct{font-family:'JetBrains Mono',monospace;color:var(--navy);font-weight:600;white-space:nowrap;}
.v2-app .greet .sub .lg-ch.b{color:var(--ink);font-weight:600;}
/* Loader de pantalla completa: .home-loading es el original del Home; .v2-loading
   es el mismo estado para cualquier otra pantalla que espere datos de la API. */
.v2-app .home-loading,.v2-app .v2-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:60vh;color:var(--ink-3);font-size:14px;}
.v2-app .home-loading .lg-spin,.v2-app .v2-loading .lg-spin{width:30px;height:30px;border-width:3px;}
.v2-app .toolbar{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap;}
.v2-app .toolbar .btn{height:52px;padding:0 24px;font-size:15px;border-radius:12px;}
.v2-app .toolbar .btn .ic{width:19px;height:19px;}

.v2-app .btn{display:inline-flex;align-items:center;gap:9px;height:44px;padding:0 18px;border-radius:var(--r);font-family:'Roboto',sans-serif;font-size:14px;font-weight:600;white-space:nowrap;cursor:pointer;border:1px solid var(--line);background:var(--paper-2);color:var(--ink);text-decoration:none;transition:transform .12s,box-shadow .15s,background .15s;}
.v2-app .btn .ic{width:17px;height:17px;}
.v2-app .btn:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(19,33,43,0.08);}
.v2-app .btn.primary{background:var(--navy);color:#fff;border-color:var(--navy);}
.v2-app .btn.primary .ic{color:var(--blue);}
.v2-app .btn.primary:hover{background:#05405f;}

/* ───── Cuenta corriente · placa ───── */
.v2-app .cc{
    position:relative;border-radius:16px;color:#fff;
    background:linear-gradient(155deg,#0A6190 0%, var(--navy) 58%, #033B57 100%);
    padding:22px 26px 20px;display:flex;flex-direction:column;overflow:hidden;
    box-shadow:0 16px 38px -20px rgba(4,81,119,0.55);
}
.v2-app .cc::before{content:"";position:absolute;right:-50px;top:-50px;width:300px;height:300px;pointer-events:none;background:radial-gradient(circle at 35% 35%, rgba(0,174,239,0.40), transparent 62%);}
.v2-app .cc::after{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--blue);}
.v2-app .cc-head{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:1;}
.v2-app .cc-tag{display:flex;align-items:center;gap:9px;}
.v2-app .cc-tag .ic{width:16px;height:16px;color:var(--blue);}
.v2-app .cc-status{display:inline-flex;align-items:center;gap:6px;font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:#7BE6AE;background:rgba(255,255,255,0.10);border:1px solid rgba(255,255,255,0.20);padding:4px 9px;border-radius:999px;}
.v2-app .cc-status.warn{color:#FFCF9E;}
.v2-app .cc-amount{font-family:'JetBrains Mono',monospace;font-size:44px;font-weight:600;letter-spacing:-1.5px;line-height:1;color:#fff;margin-top:14px;position:relative;z-index:1;}
.v2-app .cc-amount .cur{color:var(--blue);font-size:24px;font-weight:500;margin-right:5px;}
.v2-app .cc-meta{font-size:13.5px;color:rgba(255,255,255,0.82);margin-top:10px;position:relative;z-index:1;}
.v2-app .cc-meta b{color:#fff;font-weight:600;}
.v2-app .meter{margin-top:20px;position:relative;z-index:1;}
.v2-app .meter-bar{height:12px;border-radius:999px;background:rgba(255,255,255,0.16);overflow:hidden;display:flex;gap:2px;}
.v2-app .meter-bar i{display:block;height:100%;}
.v2-app .meter-leg{display:flex;gap:22px;margin-top:12px;}
.v2-app .leg{display:flex;align-items:center;gap:8px;}
.v2-app .leg .sw{width:9px;height:9px;border-radius:3px;}
.v2-app .leg .lt{font-size:12px;color:rgba(255,255,255,0.72);}
.v2-app .leg .vl{font-family:'JetBrains Mono',monospace;font-size:12.5px;font-weight:600;color:#fff;}
.v2-app .cc-actions{display:flex;gap:10px;margin-top:auto;padding-top:22px;position:relative;z-index:1;}
.v2-app .cc-actions .btn{flex:1;justify-content:center;background:rgba(255,255,255,0.10);border:1px solid rgba(255,255,255,0.24);color:#fff;}
.v2-app .cc-actions .btn:hover{background:rgba(255,255,255,0.17);}
.v2-app .cc-actions .btn .ic{color:#fff;}
.v2-app .cc-actions .btn.primary{background:var(--blue);border-color:var(--blue);color:#04293b;}
.v2-app .cc-actions .btn.primary:hover{background:#23c0fb;}
.v2-app .cc-actions .btn.primary .ic{color:#04293b;}

/* ───── Lower grid ───── */
.v2-app .lower{flex:1;display:grid;grid-template-columns:1fr 480px;gap:36px;min-height:0;}
.v2-app .sec-head{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.v2-app .sec-idx{font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:600;color:var(--navy);}
.v2-app .sec-title{font-family:'Saira',sans-serif;font-size:19px;font-weight:700;letter-spacing:-.2px;}
.v2-app .sec-rule{flex:1;height:1px;background:var(--line);}
.v2-app .link{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:600;color:var(--blue-d);cursor:pointer;}
.v2-app .link .ic{width:14px;height:14px;}

/* Ledger — con el alto del board variable, si las 7 filas no entran la lista
   scrollea por dentro; header y total quedan pegados arriba/abajo (sticky). */
.v2-app .ledger{border:1px solid var(--line);border-radius:12px;background:var(--paper-2);overflow-y:auto;flex:1;display:flex;flex-direction:column;min-height:0;}
.v2-app .ledger::-webkit-scrollbar{width:7px;}
.v2-app .ledger::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px;}
.v2-app .ledger::-webkit-scrollbar-track{background:transparent;}
.v2-app .ledger-row{display:grid;grid-template-columns:1.15fr 0.95fr 1.45fr 0.7fr 0.95fr;align-items:center;gap:14px;padding:0 20px;border-bottom:1px solid var(--line-2);}
.v2-app .ledger-row:not(.hd){flex:1 1 0;min-height:46px;}
.v2-app .ledger-row.hd{flex:0 0 40px;background:var(--paper-3);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:2;}
.v2-app .ledger-row.hd span{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--ink-3);}
.v2-app .ledger-row.hd .r{text-align:right;}
.v2-app .ledger-foot{display:flex;align-items:center;justify-content:space-between;padding:15px 20px;background:var(--paper-3);position:sticky;bottom:0;z-index:2;border-top:1px solid var(--line);margin-top:auto;flex-shrink:0;}
.v2-app .ledger-foot .lf-l{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.8px;text-transform:uppercase;color:var(--ink-3);}
.v2-app .ledger-foot .lf-r{font-family:'JetBrains Mono',monospace;font-size:15px;font-weight:600;color:var(--ink);}
.v2-app .ord-id{font-family:'JetBrains Mono',monospace;font-size:15px;font-weight:600;color:var(--navy);}
.v2-app .ord-date{font-size:12px;color:var(--ink-3);font-family:'JetBrains Mono',monospace;margin-top:2px;}
.v2-app .ord-deliv .m{font-size:13.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.v2-app .ord-deliv .s{font-size:12px;color:var(--ink-3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.v2-app .num{font-family:'JetBrains Mono',monospace;font-size:14.5px;font-weight:600;text-align:right;color:var(--ink);}
.v2-app .num .u{color:var(--ink-3);font-weight:500;font-size:11.5px;}
.v2-app .ord-total{font-family:'JetBrains Mono',monospace;font-size:16px;font-weight:600;text-align:right;}
.v2-app .pill{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--green);background:#E7F3EB;border:1px solid #cfe7d6;padding:4px 10px;border-radius:999px;}
.v2-app .pill .ic{width:12px;height:12px;}
.v2-app .pill .d{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0;}
.v2-app .pill.warn{color:#9A6B14;background:#FBF1DC;border-color:#F0DCAE;}
.v2-app .pill.info{color:var(--navy);background:var(--sky);border-color:#BBDDED;}

/* Right column */
.v2-app .rcol{display:flex;flex-direction:column;gap:24px;min-height:0;}
/* Actividad (primer bloque) no cede alto; el que scrollea es Novedades. */
.v2-app .rcol > div:first-child{flex-shrink:0;}
.v2-app .spec{border:1px solid var(--line);border-radius:12px;background:var(--paper-2);overflow:hidden;}
.v2-app .spec-row{display:flex;align-items:center;justify-content:space-between;padding:13px 18px;border-bottom:1px solid var(--line-2);}
.v2-app .spec-row:last-child{border-bottom:none;}
.v2-app .spec-row .k{font-size:13px;color:var(--ink-2);display:flex;align-items:center;gap:10px;}
.v2-app .spec-row .k .ic{width:15px;height:15px;color:var(--ink-3);}
.v2-app .spec-row .v{font-family:'JetBrains Mono',monospace;font-size:15px;font-weight:600;}
.v2-app .spec-row .v small{color:var(--ink-3);font-weight:500;font-size:11px;margin-left:2px;}

/* Novedades: mismo criterio que el ledger — scrollea por dentro si falta alto. */
.v2-app .news{display:flex;flex-direction:column;gap:0;border:1px solid var(--line);border-radius:12px;background:var(--paper-2);overflow-y:auto;flex:1;min-height:0;}
.v2-app .news::-webkit-scrollbar{width:7px;}
.v2-app .news::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px;}
.v2-app .news-item{flex-shrink:0;}
.v2-app .news-item{display:flex;gap:13px;padding:15px 18px;border-bottom:1px solid var(--line-2);}
.v2-app .news-item:last-child{border-bottom:none;}
.v2-app .news-item--urgent{background:#FDF4F3;border-left:3px solid #E0584A;}
.v2-app .news-item--warn{background:#FEFAEF;border-left:3px solid #E3A52E;}
.v2-app .news-ic{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.v2-app .news-ic .ic{width:15px;height:15px;}
.v2-app .news-ic.b{background:#E3F0F9;}.v2-app .news-ic.b .ic{color:var(--blue);}
.v2-app .news-ic.a{background:#FBF0DF;}.v2-app .news-ic.a .ic{color:var(--amber);}
.v2-app .news-ic.g{background:#E7F3EB;}.v2-app .news-ic.g .ic{color:var(--green);}
.v2-app .news-tx{font-size:12.5px;color:var(--ink-2);line-height:1.5;}
.v2-app .news-tx b{color:var(--ink);font-weight:600;}
.v2-app .news-tx .mono{color:var(--ink);font-weight:600;font-family:'JetBrains Mono',monospace;}
.v2-app .news-foot{display:flex;align-items:center;justify-content:center;gap:6px;padding:14px;border-top:1px solid var(--line-2);color:var(--blue);font-weight:600;font-size:13px;cursor:pointer;position:sticky;bottom:0;background:var(--paper-2);margin-top:auto;flex-shrink:0;}
.v2-app .news-foot .ic{width:14px;height:14px;}

/* ───── Entrance animation ───── */
.v2-app .reveal{opacity:0;transform:translateY(12px);animation:v2rise .6s cubic-bezier(.2,.7,.2,1) forwards;}
.v2-app .reveal.d1{animation-delay:.04s;}
.v2-app .reveal.d2{animation-delay:.12s;}
.v2-app .reveal.d3{animation-delay:.20s;}
.v2-app .reveal.d4{animation-delay:.28s;}
@keyframes v2rise{to{opacity:1;transform:none;}}

/* ============================================================
   Cuenta Corriente (dashboard con pestañas) — portado de cc-pages.js / 05.
   ============================================================ */
.v2-app .muted{color:var(--ink-3);}
.v2-app .pg-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;}
.v2-app .pg-eyebrow{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--blue-d);}
.v2-app .pg-title{font-family:'Saira',sans-serif;font-size:36px;font-weight:700;letter-spacing:-.6px;line-height:1;margin-top:7px;}
.v2-app .pg-sub{font-size:13.5px;color:var(--ink-2);margin-top:9px;}
.v2-app .pg-actions{display:flex;gap:10px;}
.v2-app .cc-tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);}
.v2-app .cc-tab{padding:11px 18px;font-size:14px;font-weight:600;color:var(--ink-3);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;display:flex;align-items:center;gap:8px;transition:color .15s;}
.v2-app .cc-tab:hover{color:var(--ink-2);}
.v2-app .cc-tab.active{color:var(--navy);border-bottom-color:var(--blue);}
.v2-app .ct-badge{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;background:var(--sky);color:var(--navy);border-radius:999px;padding:1px 7px;}
.v2-app .cc-tab.active .ct-badge{background:var(--blue);color:#fff;}
.v2-app .kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.v2-app .kpi{background:var(--paper-2);border:1px solid var(--line);border-radius:12px;padding:16px 18px;position:relative;overflow:hidden;}
.v2-app .kpi .accent{position:absolute;left:0;top:0;bottom:0;width:3px;}
.v2-app .kpi .ic-wrap{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;margin-bottom:12px;}
.v2-app .kpi .ic-wrap .ic{width:17px;height:17px;}
.v2-app .kpi .lab{font-size:12.5px;color:var(--ink-2);}
.v2-app .kpi .val{font-family:'JetBrains Mono',monospace;font-size:25px;font-weight:700;letter-spacing:-1px;margin-top:3px;color:var(--ink);}
.v2-app .kpi .sub{font-size:11.5px;color:var(--ink-3);margin-top:5px;}
.v2-app .kpi.t-neutral .ic-wrap{background:var(--sky);}.v2-app .kpi.t-neutral .ic-wrap .ic{color:var(--navy);}.v2-app .kpi.t-neutral .accent{background:var(--navy);}
.v2-app .kpi.t-danger .ic-wrap{background:#FBE9E7;}.v2-app .kpi.t-danger .ic-wrap .ic{color:var(--danger);}.v2-app .kpi.t-danger .accent{background:var(--danger);}
.v2-app .kpi.t-warn .ic-wrap{background:#FBF1DC;}.v2-app .kpi.t-warn .ic-wrap .ic{color:#9A6B14;}.v2-app .kpi.t-warn .accent{background:var(--amber);}
.v2-app .kpi.t-success .ic-wrap{background:#E7F3EB;}.v2-app .kpi.t-success .ic-wrap .ic{color:var(--green);}.v2-app .kpi.t-success .accent{background:var(--green);}
.v2-app .card{border:1px solid var(--line);border-radius:12px;background:var(--paper-2);overflow:hidden;}
.v2-app .card-head{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;}
.v2-app .card-title{font-family:'Saira',sans-serif;font-size:16px;font-weight:700;letter-spacing:-.2px;}
.v2-app .lg{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-2);}
.v2-app .lg i{width:10px;height:10px;border-radius:3px;}
/* Resumen de CC: si el alto real no alcanza (board ya no es 1080 fijo), el
   bloque entero scrollea como fallback en vez de recortarse. */
.v2-app .res-grid{flex:1;display:grid;grid-template-columns:1.45fr 1fr;gap:20px;min-height:0;overflow-y:auto;}
.v2-app .res-grid::-webkit-scrollbar{width:7px;}
.v2-app .res-grid::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px;}
.v2-app .res-col{display:flex;flex-direction:column;gap:20px;min-height:0;}
.v2-app .mini{padding:2px 0;}
.v2-app .mini-row{display:grid;grid-template-columns:1.3fr .8fr 1fr .9fr;align-items:center;gap:12px;padding:11px 18px;border-bottom:1px solid var(--line-2);}
.v2-app .mini-row:last-child{border-bottom:none;}
.v2-app .pay-row{display:flex;align-items:center;gap:12px;padding:11px 18px;}
.v2-app .pay-ic{width:30px;height:30px;border-radius:8px;background:#E7F3EB;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.v2-app .pay-ic .ic{width:14px;height:14px;color:var(--green);}
.v2-app .dt{display:flex;flex-direction:column;flex:1;min-height:0;overflow:auto;}
.v2-app .dt::-webkit-scrollbar{width:7px;}
.v2-app .dt::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px;}
.v2-app .dt::-webkit-scrollbar-track{background:transparent;}
.v2-app .dt-row{display:grid;grid-template-columns:var(--cols,1fr);align-items:center;gap:14px;padding:0 18px;border-bottom:1px solid var(--line-2);}
/* Sin min-width:0 las celdas con texto largo (ej. dirección de entrega) agrandan su
   columna y descuadran la fila respecto al header/resto. */
.v2-app .dt-row > *{min-width:0;}
.v2-app .dt-row:not(.head){flex:1 1 0;min-height:44px;}
.v2-app .dt-row.head{flex:0 0 38px;background:var(--paper-3);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:2;}
.v2-app .dt-row.head span{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:var(--ink-3);}
.v2-app .dt-row.head .r{text-align:right;}
.v2-app .dt-row.open{background:var(--paper-3);}
.v2-app .dt-row:hover:not(.head):not(.open){background:var(--paper-3);}
.v2-app .cellc{font-family:'JetBrains Mono',monospace;font-size:12.5px;color:var(--ink-2);}
.v2-app .cellc.warnt{color:#9A6B14;font-weight:600;}
.v2-app .cell-num{font-family:'JetBrains Mono',monospace;font-size:13.5px;font-weight:600;text-align:right;color:var(--ink);}
.v2-app .cell-num.deb{color:var(--ink);}
.v2-app .cell-num.hab{color:var(--green);}
/* B2B-017: botón de descarga de PDF por fila */
.v2-app .dt-act{display:flex;align-items:center;justify-content:center;gap:2px;}
/* "Imputado a" (Pagos): clampeado a 2 líneas por default + botón desplegar */
.v2-app .imp-cell{display:flex;align-items:flex-start;gap:6px;min-width:0;}
.v2-app .imp-txt{flex:1;min-width:0;}
.v2-app .imp-cell:not(.open) .imp-txt{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.v2-app .imp-toggle{flex-shrink:0;width:20px;height:20px;margin-top:1px;border:1px solid var(--line);border-radius:6px;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink-3);padding:0;}
.v2-app .imp-toggle .ic{width:12px;height:12px;transition:transform .15s;}
.v2-app .imp-toggle:hover{background:var(--paper-3);color:var(--navy);}
.v2-app .imp-cell.open .imp-toggle .ic{transform:rotate(180deg);}
/* Fila de Pago desplegada: crece a su contenido (anula el flex:1 1 0 que la fijaba
   a 44px y hacía que el texto desbordara y se solapara con la fila de abajo). */
.v2-app .dt-row.imp-open{flex:0 0 auto;align-items:flex-start;padding-top:12px;padding-bottom:12px;}
.v2-app .dt-dl{width:28px;height:28px;border-radius:7px;border:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:center;color:var(--ink-2);cursor:pointer;padding:0;}
.v2-app .dt-dl:hover{border-color:var(--blue);color:var(--blue);}
.v2-app .dt-dl .ic{width:15px;height:15px;}
.v2-app .dtfoot{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:var(--paper-3);border-top:1px solid var(--line);font-size:13px;}
.v2-app .dtfoot .lf-l{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.8px;text-transform:uppercase;color:var(--ink-3);}
.v2-app .dtfoot b{font-family:'JetBrains Mono',monospace;}
.v2-app .deb{color:var(--ink);}.v2-app .hab{color:var(--green);}
.v2-app .t-ic{width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.v2-app .t-ic .ic{width:13px;height:13px;}
.v2-app .t-ic.t-fac{background:var(--sky);}.v2-app .t-ic.t-fac .ic{color:var(--navy);}
.v2-app .t-ic.t-rec{background:#E7F3EB;}.v2-app .t-ic.t-rec .ic{color:var(--green);}
.v2-app .t-ic.t-nc{background:#FBF1DC;}.v2-app .t-ic.t-nc .ic{color:#9A6B14;}
.v2-app .pdfbtn{width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,border-color .15s;}
.v2-app .pdfbtn:hover{background:var(--sky);border-color:#BBDDED;}
.v2-app .pdfbtn .ic{width:15px;height:15px;color:var(--navy);}
/* B2B-017: ícono de documento para descargar el PDF del comprobante (sin caja) */
.v2-app .docdl{width:30px;height:30px;border-radius:8px;border:none;background:transparent;display:inline-flex;align-items:center;justify-content:center;color:var(--blue);cursor:pointer;padding:0;transition:background .15s;}
.v2-app .docdl:hover{background:var(--sky);}
.v2-app .docdl .ic{width:18px;height:18px;}
/* B2B-017: drawer de previsualización de PDF (slide-in desde la derecha) */
.v2-app .pdfdr-scrim{position:fixed;inset:0;background:rgba(15,42,58,.34);opacity:0;visibility:hidden;transition:opacity .2s;z-index:200;}
.v2-app .pdfdr-scrim.open{opacity:1;visibility:visible;}
.v2-app .pdfdr{position:fixed;top:0;right:0;height:100%;width:min(940px,96vw);background:#fff;display:flex;flex-direction:column;box-shadow:-18px 0 44px rgba(19,33,43,.22);transform:translateX(100%);transition:transform .25s ease;}
.v2-app .pdfdr.open{transform:translateX(0);}
.v2-app .pdfdr-head{display:flex;align-items:center;gap:12px;padding:15px 20px;border-bottom:1px solid var(--line);flex-shrink:0;}
.v2-app .pdfdr-title{font-size:15px;font-weight:700;color:var(--navy);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.v2-app .pdfdr-x{width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:center;color:var(--ink-2);cursor:pointer;flex-shrink:0;}
.v2-app .pdfdr-x:hover{border-color:var(--blue);color:var(--blue);}
.v2-app .pdfdr-x .ic{width:16px;height:16px;}
.v2-app .pdfdr-body{flex:1;min-height:0;background:#52565A;display:flex;align-items:center;justify-content:center;}
.v2-app .pdfdr-frame{width:100%;height:100%;border:none;}
.v2-app .pdfdr-load{color:#fff;font-size:13px;opacity:.85;}
.v2-app .pdfdr-foot{display:flex;justify-content:flex-end;gap:10px;padding:13px 20px;border-top:1px solid var(--line);flex-shrink:0;}
.v2-app .filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
/* Lista de precios: aire igual arriba (card) y abajo (grid) de los filtros */
.v2-app .lp-filters{margin:18px 0;}
.v2-app .lp-filters + .card{margin-top:0;}
.v2-app .seg{display:flex;gap:6px;}
.v2-app .chip{height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:var(--paper-2);font-family:'Roboto',sans-serif;font-size:13px;font-weight:600;color:var(--ink-2);cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:background .15s,color .15s;}
.v2-app .chip:hover{background:var(--paper-3);}
.v2-app .chip.active{background:var(--navy);border-color:var(--navy);color:#fff;}
.v2-app .chip .cnt{font-family:'JetBrains Mono',monospace;font-size:11px;opacity:.75;}
/* Chips de familia (Productos / Lista de precios): nombres largos ocupan hasta
   2 renglones dentro del globito; si excede, se recorta con ellipsis. Altura
   flexible (min 36px) para que el texto nunca se salga del pill. */
/* Panel colapsable de familias: ocupa su propia fila completa debajo del buscador. */
.v2-app .seg:has(.chip.fam){flex-wrap:wrap;row-gap:8px;flex-basis:100%;}
.v2-app .chip.fam{flex:0 0 auto;height:auto;min-height:36px;padding:6px 16px;min-width:96px;max-width:220px;}
/* Botón toggle "Familia ▾" al lado del buscador. */
.v2-app .fam-toggle{height:36px;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:var(--paper-2);font-family:'Roboto',sans-serif;font-size:13px;font-weight:600;color:var(--ink-2);cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:background .15s,color .15s,border-color .15s;}
.v2-app .fam-toggle:hover{background:var(--paper-3);}
.v2-app .fam-toggle.on{background:var(--navy);border-color:var(--navy);color:#fff;}
.v2-app .fam-toggle .fic{width:15px;height:15px;flex:0 0 auto;color:var(--ink-3);}
.v2-app .fam-toggle.on .fic{color:#fff;}
.v2-app .fam-toggle .lbl{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.v2-app .fam-toggle .chev{width:15px;height:15px;flex:0 0 auto;transition:transform .18s ease;}
.v2-app .fam-toggle.open .chev{transform:rotate(180deg);}
.v2-app .chip.fam .fam-tx{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal;text-align:center;line-height:1.18;word-break:break-word;}
.v2-app .input{height:36px;padding:0 13px;border:1px solid var(--line);border-radius:9px;background:var(--paper-2);font-size:13px;color:var(--ink-2);display:inline-flex;align-items:center;gap:8px;}
/* Filtro de rango de fechas (DateRangeFilter) */
.v2-app .drf-wrap{position:relative;}
.v2-app .drf-err{position:absolute;top:calc(100% + 5px);right:0;z-index:8;background:#fff;border:1px solid #E0584A;color:#C0392B;font-size:11.5px;font-weight:600;padding:5px 10px;border-radius:7px;white-space:nowrap;box-shadow:0 6px 18px rgba(15,42,58,.14);}
.v2-app .drf{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 7px 0 11px;border:1px solid var(--line);border-radius:9px;background:var(--paper-2);}
.v2-app .drf-lbl{font-size:11.5px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.4px;}
.v2-app .drf-in{border:none;background:transparent;outline:none;font-family:'Roboto',sans-serif;font-size:12.5px;color:var(--ink);width:108px;}
.v2-app .drf-in::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.5;}
.v2-app .drf-btn{height:28px;padding:0 15px;border:none;border-radius:7px;background:var(--navy);color:#fff;font-family:'Roboto',sans-serif;font-size:12.5px;font-weight:600;cursor:pointer;transition:background .15s,opacity .15s;}
.v2-app .drf-btn:hover{background:#06628f;}
.v2-app .drf-btn:disabled{opacity:.4;cursor:default;}
.v2-app .input .ic{width:15px;height:15px;color:var(--ink-3);}
.v2-app .pill.ok{color:var(--green);background:#E7F3EB;border-color:#cfe7d6;}
.v2-app .pill.danger{color:var(--danger);background:#FBE9E7;border-color:#F0CFCB;}

/* ============================================================
   Mi cuenta · Perfil — portado de profile-page.js / 05.
   ============================================================ */
.v2-app .pf-wrap{display:flex;flex-direction:column;gap:13px;min-height:0;flex:1;}
.v2-app .pf-banner{position:relative;border-radius:16px;color:#fff;overflow:hidden;padding:16px 28px;display:flex;align-items:center;gap:24px;background:linear-gradient(110deg,#0A6190 0%,var(--navy) 55%,#033B57 100%);box-shadow:0 16px 38px -22px rgba(4,81,119,0.55);flex-shrink:0;}
.v2-app .pf-banner::before{content:"";position:absolute;right:-40px;top:-60px;width:320px;height:320px;background:radial-gradient(circle at 40% 40%,rgba(0,174,239,0.38),transparent 62%);pointer-events:none;}
.v2-app .pf-banner::after{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--blue);}
.v2-app .pf-bav{width:70px;height:70px;border-radius:50%;background:linear-gradient(135deg,var(--blue),#23c0fb);display:flex;align-items:center;justify-content:center;font-family:'Saira',sans-serif;font-weight:700;font-size:25px;color:#04293b;flex-shrink:0;position:relative;z-index:1;box-shadow:0 6px 20px rgba(0,0,0,.2);}
.v2-app .pf-bid{position:relative;z-index:1;flex:1;min-width:0;}
.v2-app .pf-beyebrow{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--blue);}
.v2-app .pf-bname{font-family:'Saira',sans-serif;font-size:31px;font-weight:700;letter-spacing:-.5px;line-height:1.05;margin-top:4px;}
.v2-app .pf-bmeta{font-size:13.5px;color:rgba(255,255,255,.82);margin-top:8px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.v2-app .pf-bmeta .dot{width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,.4);}
.v2-app .pf-bmeta b{color:#fff;font-weight:600;}
.v2-app .pf-bstats{position:relative;z-index:1;display:flex;gap:12px;flex-shrink:0;}
.v2-app .pf-stat{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.20);border-radius:12px;padding:11px 16px;min-width:118px;}
.v2-app .pf-stat .l{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.65);}
.v2-app .pf-stat .v{font-family:'JetBrains Mono',monospace;font-size:20px;font-weight:700;letter-spacing:-.5px;margin-top:4px;color:#fff;}
.v2-app .pf-stat .s{font-size:10.5px;color:rgba(255,255,255,.6);margin-top:3px;}
/* Perfil: las dos columnas de cards scrollean juntas si el alto no alcanza. */
.v2-app .pf-bottom{flex:1;display:grid;grid-template-columns:1.15fr 1fr;gap:16px;min-height:0;align-items:start;overflow-y:auto;}
.v2-app .pf-bottom::-webkit-scrollbar{width:7px;}
.v2-app .pf-bottom::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px;}
.v2-app .pf-card{border:1px solid var(--line);border-radius:14px;background:var(--paper-2);overflow:hidden;}
.v2-app .pf-chead{display:flex;align-items:center;gap:14px;padding:15px 20px;border-bottom:1px solid var(--line);}
.v2-app .pf-ceyebrow{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:1.4px;text-transform:uppercase;color:var(--ink-3);}
.v2-app .pf-ctitle{font-family:'Saira',sans-serif;font-size:20px;font-weight:700;letter-spacing:-.3px;margin-top:2px;}
.v2-app .pf-cbody{padding:15px 20px;}
.v2-app .pf-formtop{display:flex;gap:26px;}
.v2-app .pf-avatar{display:flex;flex-direction:column;align-items:center;gap:9px;flex-shrink:0;width:116px;}
.v2-app .pf-av{width:94px;height:94px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--cyan));color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Saira',sans-serif;font-weight:700;font-size:31px;overflow:hidden;}
.v2-app .pf-av img{width:100%;height:100%;object-fit:cover;}
.v2-app .pf-averr{font-size:10.5px;color:#C0392B;text-align:center;}
.v2-app .pf-avbtn{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--blue-d);cursor:pointer;background:none;border:none;font-family:'Roboto',sans-serif;}
.v2-app .pf-avbtn .ic{width:13px;height:13px;}
.v2-app .pf-avnote{font-size:10.5px;color:var(--ink-3);text-align:center;}
.v2-app .pf-fields{flex:1;display:grid;grid-template-columns:repeat(3,1fr);gap:14px 18px;align-content:start;}
.v2-app .pf-fields .full{grid-column:1 / -1;}
.v2-app .fld{display:flex;flex-direction:column;gap:7px;}
.v2-app .fld-l{font-size:12.5px;font-weight:600;color:var(--ink-2);}
.v2-app .fld-in{display:flex;align-items:center;gap:9px;height:46px;padding:0 14px;border:1px solid var(--line);border-radius:11px;background:var(--paper-3);transition:border-color .15s,background .15s;}
.v2-app .fld-in:focus-within{border-color:var(--blue);background:#fff;}
.v2-app .fld-in .ic{width:16px;height:16px;color:var(--ink-3);flex-shrink:0;}
.v2-app .fld-in input{flex:1;border:none;background:transparent;outline:none;font-family:'Roboto',sans-serif;font-size:14.5px;color:var(--ink);min-width:0;}
.v2-app .fld-note{font-size:11.5px;font-weight:600;color:var(--green);display:inline-flex;align-items:center;gap:5px;}
.v2-app .fld-note .ic{width:12px;height:12px;}
.v2-app .fld-ro input{color:var(--ink-2);}
.v2-app .fld-ro{background:var(--paper-3);}
.v2-app .fld-hint{font-size:11px;color:var(--ink-3);font-weight:500;}
.v2-app .pf-note{display:flex;align-items:center;gap:11px;margin-top:13px;padding:12px 16px;border:1px solid #BBDDED;background:var(--sky);border-radius:11px;font-size:13px;color:var(--navy);}
.v2-app .pf-note .ic{width:16px;height:16px;color:var(--navy);flex-shrink:0;}
.v2-app .pf-specgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px 28px;}
.v2-app .pf-spec .k{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:var(--ink-3);}
.v2-app .pf-spec .v{font-size:15px;font-weight:600;color:var(--ink);margin-top:5px;}
.v2-app .pf-users{margin-top:18px;}
.v2-app .pf-utitle{display:flex;align-items:center;justify-content:space-between;padding:11px 16px;background:var(--paper-3);border:1px solid var(--line);border-bottom:none;border-radius:11px 11px 0 0;}
.v2-app .pf-utitle .l{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:var(--ink-3);}
.v2-app .pf-ulist{border:1px solid var(--line);border-radius:0 0 11px 11px;overflow:hidden;}
.v2-app .pf-urow{display:flex;align-items:center;gap:13px;padding:13px 16px;border-bottom:1px solid var(--line-2);}
.v2-app .pf-urow:last-child{border-bottom:none;}
.v2-app .pf-uav{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--cyan));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0;}
.v2-app .pf-uname{font-size:14px;font-weight:600;}
.v2-app .pf-umail{font-size:12px;color:var(--ink-3);font-family:'JetBrains Mono',monospace;margin-top:1px;}
.v2-app .pf-utag{margin-left:auto;display:flex;align-items:center;gap:10px;}
.v2-app .pf-role{font-size:12px;font-weight:600;color:var(--navy);background:var(--sky);border:1px solid #BBDDED;border-radius:999px;padding:3px 10px;}
.v2-app .pf-seclist2{display:flex;flex-direction:column;}
.v2-app .pf-secrow{display:flex;align-items:center;gap:14px;padding:14px 20px;border-bottom:1px solid var(--line-2);}
.v2-app .pf-secrow:last-child{border-bottom:none;}
.v2-app .pf-secrow .pf-sectx{flex:1;min-width:0;}
.v2-app .pf-secrow .pf-sectt{font-size:14px;font-weight:600;}
.v2-app .pf-secrow .pf-secss{font-size:12px;color:var(--ink-2);margin-top:2px;}
.v2-app .pf-secic{width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--sky);}
.v2-app .pf-secic .ic{width:19px;height:19px;color:var(--navy);}
.v2-app .pf-secic.warn{background:#FBF1DC;}.v2-app .pf-secic.warn .ic{color:#9A6B14;}
.v2-app .pf-secic.ok{background:#E7F3EB;}.v2-app .pf-secic.ok .ic{color:var(--green);}
.v2-app .pf-sectx{flex:1;min-width:0;}
.v2-app .pf-sectt{font-size:14.5px;font-weight:600;display:flex;align-items:center;gap:9px;}
.v2-app .pf-secss{font-size:12px;color:var(--ink-2);margin-top:4px;line-height:1.45;}
.v2-app .pf-secbtn2{flex-shrink:0;height:38px;white-space:nowrap;min-width:118px;justify-content:center;}

/* ============================================================
   Chat lateral (Ventas / Cobranzas / IA) — cc-shell.js / 05.
   ============================================================ */
.v2-app .chat-trigger .ic{color:var(--green);}
.v2-app .chat-trigger:hover{background:#EAF5EE;}
.v2-app .ai-trigger:hover{background:#E3F0F9;}
.v2-app .ai-sugg{display:flex;flex-direction:column;gap:7px;align-self:flex-start;margin-top:2px;}
.v2-app .ai-chip{text-align:left;border:1px solid var(--line);background:#fff;color:var(--blue-d);font-family:'Roboto',sans-serif;font-size:12.5px;font-weight:600;padding:9px 12px;border-radius:10px;cursor:pointer;transition:background .15s,border-color .15s;}
.v2-app .ai-chip:hover{background:var(--sky);border-color:#BBDDED;}
.v2-app .msg.ai{align-self:flex-start;background:#F4FBFE;border:1px solid #BBDDED;border-bottom-left-radius:4px;color:var(--ink);}
.v2-app .msg .who.ai-who{color:var(--blue-d);display:flex;align-items:center;gap:5px;}
.v2-app .msg .who.ai-who svg{width:12px;height:12px;}
.v2-app .chat-panel{overflow:hidden;background:var(--paper-2);border-left:1px solid var(--line);position:relative;z-index:2;}
.v2-app .chat-inner{width:384px;height:100%;display:flex;flex-direction:column;}
.v2-app .chat-head{padding:18px 18px 0;border-bottom:1px solid var(--line);flex-shrink:0;}
.v2-app .chat-head-top{display:flex;align-items:flex-start;gap:12px;}
.v2-app .chat-ttl{font-family:'Saira',sans-serif;font-size:18px;font-weight:700;letter-spacing:-.2px;}
.v2-app .chat-sub{font-size:12px;color:var(--ink-3);margin-top:3px;}
.v2-app .chat-x{margin-left:auto;width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.v2-app .chat-x .ic{width:16px;height:16px;color:var(--ink-2);}
.v2-app .chat-deptabs{display:flex;gap:20px;margin-top:14px;}
.v2-app .chat-deptab{padding:9px 2px;font-size:13.5px;font-weight:600;color:var(--ink-3);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;display:flex;align-items:center;gap:7px;}
.v2-app .chat-deptab:hover{color:var(--ink-2);}
.v2-app .chat-deptab.active{color:var(--navy);border-bottom-color:var(--blue);}
.v2-app .on-dot{width:7px;height:7px;border-radius:50%;background:var(--green);}
.v2-app .chat-body{flex:1;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:11px;background:var(--paper);}
.v2-app .chat-body::-webkit-scrollbar{width:0;}
.v2-app .chat-day{align-self:center;font-size:11px;color:var(--ink-3);background:var(--paper-2);border:1px solid var(--line);border-radius:999px;padding:3px 11px;margin-bottom:2px;}
.v2-app .msg{max-width:80%;padding:10px 13px;border-radius:14px;font-size:13px;line-height:1.45;}
.v2-app .msg.in{align-self:flex-start;background:#fff;border:1px solid var(--line);border-bottom-left-radius:4px;color:var(--ink);}
.v2-app .msg.out{align-self:flex-end;background:var(--navy);color:#fff;border-bottom-right-radius:4px;}
.v2-app .msg .who{font-size:10.5px;font-weight:700;color:var(--blue-d);margin-bottom:3px;}
.v2-app .msg .t{font-size:9.5px;color:var(--ink-3);margin-top:4px;text-align:right;}
.v2-app .msg.out .t{color:rgba(255,255,255,.6);}
.v2-app .chat-input{padding:12px;border-top:1px solid var(--line);display:flex;align-items:center;gap:8px;background:var(--paper-2);flex-shrink:0;}
.v2-app .chat-input input{flex:1;height:40px;border:1px solid var(--line);border-radius:10px;padding:0 12px;font-family:'Roboto',sans-serif;font-size:13.5px;outline:none;background:var(--paper-3);color:var(--ink);}
.v2-app .chat-input input:focus{border-color:var(--blue);background:#fff;}
.v2-app .chat-send{width:40px;height:40px;border-radius:10px;background:var(--blue);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.v2-app .chat-send .ic{width:17px;height:17px;color:#fff;}

/* Footer de conversación finalizada (el operador cerró el hilo en vivo). Read-only + salida a uno nuevo. */
.v2-app .chat-closed{padding:12px;border-top:1px solid var(--line);background:var(--paper-2);display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;flex-shrink:0;}
.v2-app .chat-closed span{font-size:12px;color:var(--ink-3);}
.v2-app .chat-newconv{height:36px;padding:0 16px;border-radius:10px;background:var(--blue);color:#fff;border:none;cursor:pointer;font-family:'Roboto',sans-serif;font-size:13px;font-weight:600;}
.v2-app .chat-newconv:hover{filter:brightness(1.05);}
.v2-app .dept-panel{display:none;flex-direction:column;gap:11px;}
.v2-app .dept-panel.active{display:flex;}

/* Mensaje de sistema (welcome / out-of-hours / reasignación / cierre) — centrado y sutil. */
.v2-app .msg.sys{align-self:center;max-width:92%;text-align:center;background:transparent;border:none;color:var(--ink-3);font-size:11.5px;line-height:1.4;padding:2px 8px;}

/* Indicador "escribiendo…" del operador (tres puntitos animados). */
.v2-app .msg.in.typing{display:flex;gap:4px;align-items:center;padding:12px 14px;}
.v2-app .msg.in.typing span{width:6px;height:6px;border-radius:50%;background:var(--ink-3);opacity:.5;animation:b2bTyping 1.2s infinite ease-in-out;}
.v2-app .msg.in.typing span:nth-child(2){animation-delay:.15s;}
.v2-app .msg.in.typing span:nth-child(3){animation-delay:.3s;}
@keyframes b2bTyping{0%,60%,100%{transform:translateY(0);opacity:.35;}30%{transform:translateY(-3px);opacity:.9;}}

/* Empty-state del chat (tenant sin chat habilitado todavía). */
.v2-app .chat-empty{margin:auto;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:24px;color:var(--ink-3);}
.v2-app .chat-empty-ic{width:34px;height:34px;color:var(--ink-3);opacity:.55;}
.v2-app .chat-empty-ttl{font-family:'Saira',sans-serif;font-size:15px;font-weight:700;color:var(--ink-2);}
.v2-app .chat-empty-sub{font-size:12.5px;line-height:1.5;max-width:240px;}

/* Botón de adjuntar (clip) en la barra de input. */
.v2-app .chat-attach{width:38px;height:40px;border-radius:10px;border:1px solid var(--line);background:var(--paper-3);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.v2-app .chat-attach:hover{background:#fff;border-color:var(--blue);}
.v2-app .chat-attach .ic{width:17px;height:17px;color:var(--ink-2);}

/* Badge de no leídos en la solapa del depto. */
.v2-app .chat-deptab .chat-unread{background:var(--blue);color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px;margin-left:2px;}

/* Chip de adjunto dentro de una burbuja. */
.v2-app .chat-att{display:inline-flex;align-items:center;gap:7px;margin-bottom:5px;padding:7px 10px;border-radius:9px;background:rgba(0,0,0,.05);cursor:pointer;max-width:100%;}
.v2-app .msg.out .chat-att{background:rgba(255,255,255,.16);}
.v2-app .chat-att .ic{width:16px;height:16px;flex-shrink:0;}
.v2-app .chat-att-name{font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.v2-app .chat-att-size{font-size:10.5px;opacity:.65;flex-shrink:0;}

/* ============================================================
   Modal "Informar pago" — cc-shell.js / 05.
   ============================================================ */
.v2-app .pay-scrim{position:absolute;inset:0;z-index:50;display:none;align-items:center;justify-content:center;background:rgba(4,41,59,0.55);backdrop-filter:blur(3px);padding:40px;}
.v2-app .pay-scrim.open{display:flex;}
.v2-app .pay-modal{width:680px;max-width:100%;max-height:92%;background:var(--paper-2);border-radius:18px;box-shadow:0 40px 90px -30px rgba(4,41,59,0.6);display:flex;flex-direction:column;overflow:hidden;position:relative;}
/* Overlay "Generando pedido" (bloqueante) */
.v2-app .pay-modal.ord-wait{align-items:stretch;}
.v2-app .ord-wait-body{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:38px 34px 34px;}
.v2-app .ord-wait-spin{width:38px;height:38px;border-width:3px;}
.v2-app .ord-wait-t{font-size:18px;font-weight:700;color:var(--navy);}
.v2-app .ord-wait-s{font-size:13.5px;line-height:1.5;color:var(--ink-2);max-width:300px;}
.v2-app .pay-mhead{display:flex;align-items:flex-start;gap:14px;padding:22px 24px 18px;border-bottom:1px solid var(--line);}
.v2-app .pay-mic{width:42px;height:42px;border-radius:11px;background:var(--sky);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.v2-app .pay-mic .ic{width:20px;height:20px;color:var(--navy);}
.v2-app .pay-mttl{font-family:'Saira',sans-serif;font-size:21px;font-weight:700;letter-spacing:-.3px;}
.v2-app .pay-msub{font-size:13px;color:var(--ink-2);margin-top:4px;line-height:1.45;max-width:480px;}
.v2-app .pay-x{margin-left:auto;width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.v2-app .pay-x .ic{width:17px;height:17px;color:var(--ink-2);}
.v2-app .pay-body{flex:1;overflow:auto;padding:22px 24px;min-height:0;}
.v2-app .pay-body::-webkit-scrollbar{width:7px;}
.v2-app .pay-body::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px;}
.v2-app .pay-sec{margin-bottom:22px;}
.v2-app .pay-sec:last-child{margin-bottom:0;}
.v2-app .pay-sec-t{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--ink-3);margin-bottom:12px;display:flex;align-items:center;gap:8px;}
.v2-app .pay-opt{font-family:'Roboto',sans-serif;letter-spacing:0;text-transform:none;font-size:11px;font-weight:600;color:var(--ink-3);background:var(--paper-3);border:1px solid var(--line-2);border-radius:999px;padding:1px 8px;}
.v2-app .pay-grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.v2-app .fld-in.amount input{font-family:'JetBrains Mono',monospace;font-size:18px;font-weight:600;}
.v2-app .fld-in.amount .cur{font-family:'JetBrains Mono',monospace;font-size:16px;font-weight:600;color:var(--blue-d);}
.v2-app .pay-seg{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.v2-app .pay-mopt{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 6px;border-radius:11px;border:1px solid var(--line);background:var(--paper-2);font-family:'Roboto',sans-serif;font-size:12.5px;font-weight:600;color:var(--ink-2);cursor:pointer;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;}
.v2-app .pay-mopt .ic{width:18px;height:18px;color:var(--ink-3);}
.v2-app .pay-mopt:hover{background:var(--paper-3);}
.v2-app .pay-mopt.active{border-color:var(--blue);background:#fff;color:var(--navy);box-shadow:0 0 0 1px var(--blue);}
.v2-app .pay-mopt.active .ic{color:var(--blue);}
.v2-app .pay-drop{display:flex;align-items:center;gap:14px;padding:18px;border:1.5px dashed var(--line);border-radius:12px;background:var(--paper-3);color:var(--ink-2);cursor:pointer;transition:border-color .15s,background .15s;font-size:13.5px;}
.v2-app .pay-drop:hover{border-color:var(--blue);background:#fff;}
.v2-app .pay-drop>.ic{width:26px;height:26px;color:var(--navy);flex-shrink:0;}
.v2-app .pay-drop b{color:var(--ink);font-weight:600;}
.v2-app .pay-drop-s{font-size:11.5px;color:var(--ink-3);margin-top:2px;}
.v2-app .pay-imp-hint{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;color:var(--ink-2);margin-bottom:10px;}
.v2-app .pay-auto{border:1px solid var(--line);background:#fff;color:var(--blue-d);font-family:'Roboto',sans-serif;font-size:12px;font-weight:600;padding:6px 11px;border-radius:8px;cursor:pointer;transition:background .15s,border-color .15s;}
.v2-app .pay-auto:hover{background:var(--sky);border-color:#BBDDED;}
.v2-app .pay-imp-list{border:1px solid var(--line);border-radius:12px;overflow-y:auto;max-height:228px;}
.v2-app .pay-imp-list::-webkit-scrollbar{width:11px;}
.v2-app .pay-imp-list::-webkit-scrollbar-track{background:var(--paper-3);border-radius:0 11px 11px 0;}
.v2-app .pay-imp-list::-webkit-scrollbar-thumb{background:var(--ink-3);border-radius:7px;border:2px solid var(--paper-3);}
.v2-app .pay-imp-msg{padding:20px 14px;text-align:center;font-size:13px;color:var(--ink-3);}
.v2-app .pay-imp-row{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:12px;padding:11px 14px;border-bottom:1px solid var(--line-2);cursor:pointer;transition:background .12s;}
.v2-app .pay-imp-row:last-child{border-bottom:none;}
.v2-app .pay-imp-row:hover{background:var(--paper-3);}
.v2-app .pay-ck{width:20px;height:20px;border-radius:6px;border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;background:#fff;}
.v2-app .pay-ck .ic{width:13px;height:13px;color:#fff;opacity:0;}
.v2-app .pay-imp-row.on .pay-ck{background:var(--blue);border-color:var(--blue);}
.v2-app .pay-imp-row.on .pay-ck .ic{opacity:1;}
.v2-app .pay-imp-id{font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:600;color:var(--ink);}
.v2-app .pay-imp-vto{font-family:'Roboto',sans-serif;font-size:11px;font-weight:500;color:var(--ink-3);margin-top:2px;}
.v2-app .pay-imp-tot{font-family:'JetBrains Mono',monospace;font-size:13.5px;font-weight:600;}
.v2-app .pay-imp-bar{display:flex;align-items:center;justify-content:space-between;margin-top:12px;font-size:13px;color:var(--ink-2);}
.v2-app .pay-imp-bar b{font-family:'JetBrains Mono',monospace;color:var(--ink);}
.v2-app .pay-imp-rest{font-size:12px;color:var(--ink-3);}
/* importe editable por factura (imputación manual) */
.v2-app .pay-imp-amt{display:flex;align-items:center;gap:2px;border:1px solid var(--blue);border-radius:8px;padding:4px 8px;background:#fff;width:132px;}
.v2-app .pay-imp-amt .cur{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--blue-d);}
.v2-app .pay-imp-amt input{border:none;outline:none;width:100%;min-width:0;font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:600;text-align:right;color:var(--ink);background:transparent;}
/* medios de pago (informar pago manual) */
.v2-app .pm-medio{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px;background:var(--paper-2);}
.v2-app .pm-medio-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.v2-app .pm-seg{display:inline-flex;gap:4px;background:var(--paper-3);border-radius:9px;padding:3px;}
.v2-app .pm-seg-b{border:none;background:transparent;font-family:'Roboto',sans-serif;font-size:12.5px;font-weight:600;color:var(--ink-2);padding:5px 12px;border-radius:7px;cursor:pointer;transition:background .15s,color .15s;}
.v2-app .pm-seg-b:hover{color:var(--ink);}
.v2-app .pm-seg-b.active{background:#fff;color:var(--navy);box-shadow:0 1px 3px rgba(4,41,59,.12);}
.v2-app .pm-del{margin-left:auto;width:30px;height:30px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink-3);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.v2-app .pm-del:hover{background:var(--paper-3);color:var(--danger);}
.v2-app .pm-del .ic{width:15px;height:15px;}
.v2-app .pm-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
.v2-app .pm-fields .fld-in select{border:none;background:transparent;font-family:inherit;font-size:13.5px;color:var(--ink);width:100%;outline:none;cursor:pointer;}
.v2-app .pm-add{display:inline-flex;align-items:center;gap:7px;border:1px dashed var(--line);background:var(--paper-3);color:var(--blue-d);font-family:'Roboto',sans-serif;font-size:12.5px;font-weight:600;padding:9px 14px;border-radius:9px;cursor:pointer;transition:background .15s,border-color .15s;}
.v2-app .pm-add:hover{background:var(--sky);border-color:#BBDDED;}
.v2-app .pm-add .ic{width:15px;height:15px;}
.v2-app .pay-foot{display:flex;align-items:center;gap:18px;padding:16px 24px;border-top:1px solid var(--line);background:var(--paper-3);}
.v2-app .pay-foot-l{display:flex;flex-direction:column;gap:2px;}
.v2-app .pay-foot-amt{font-family:'JetBrains Mono',monospace;font-size:22px;font-weight:700;letter-spacing:-.5px;color:var(--navy);}
.v2-app .pay-foot-b{margin-left:auto;display:flex;gap:10px;}
.v2-app .pay-foot .btn{height:46px;}
.v2-app .pay-success{display:none;flex-direction:column;align-items:center;text-align:center;padding:40px 40px 32px;}
.v2-app .pay-modal.done .pay-body,.v2-app .pay-modal.done .pay-foot{display:none;}
.v2-app .pay-modal.done .pay-success{display:flex;}
.v2-app .pay-succ-ic{width:64px;height:64px;border-radius:50%;background:#E7F3EB;display:flex;align-items:center;justify-content:center;margin-bottom:18px;}
.v2-app .pay-succ-ic .ic{width:30px;height:30px;color:var(--green);}
.v2-app .pay-succ-t{font-family:'Saira',sans-serif;font-size:24px;font-weight:700;}
.v2-app .pay-succ-s{font-size:13.5px;color:var(--ink-2);line-height:1.5;max-width:410px;margin-top:8px;}
.v2-app .pay-succ-card{width:100%;border:1px solid var(--line);border-radius:12px;margin:22px 0;overflow:hidden;}
.v2-app .pay-succ-row{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line-2);font-size:13px;color:var(--ink-2);}
.v2-app .pay-succ-row:last-child{border-bottom:none;}
.v2-app .pay-succ-row b{font-family:'JetBrains Mono',monospace;color:var(--ink);}

/* ============================================================
   Selector "Informar un pago" — paso 1 (IA / manual). V2PayChooser.
   Reutiliza el header .pay-mhead del modal de pago.
   ============================================================ */
.v2-app .paych-modal{width:560px;max-width:100%;background:var(--paper-2);border-radius:18px;box-shadow:0 40px 90px -30px rgba(4,41,59,0.6);display:flex;flex-direction:column;overflow:hidden;position:relative;}
.v2-app .paych-body{padding:24px;}
.v2-app .paych-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.v2-app .paych-opt{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:11px;padding:28px 20px 24px;border-radius:16px;border:1.5px solid var(--line);background:var(--paper-2);cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s,transform .15s;}
.v2-app .paych-opt:hover{background:#fff;border-color:var(--blue);box-shadow:0 0 0 1px var(--blue),0 20px 44px -26px rgba(4,41,59,0.5);transform:translateY(-2px);}
.v2-app .paych-ic{width:58px;height:58px;border-radius:50%;background:var(--sky);display:flex;align-items:center;justify-content:center;transition:background .15s;}
.v2-app .paych-ic .ic{width:26px;height:26px;color:var(--blue);}
.v2-app .paych-opt.ia .paych-ic{background:linear-gradient(135deg,var(--blue),#5B7BE0);}
.v2-app .paych-opt.ia .paych-ic .ic{color:#fff;}
.v2-app .paych-t{font-family:'Saira',sans-serif;font-size:16.5px;font-weight:700;color:var(--navy);}
.v2-app .paych-d{font-size:12.5px;color:var(--ink-2);line-height:1.45;max-width:200px;}
.v2-app .paych-badge{position:absolute;top:12px;right:12px;font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;letter-spacing:.5px;color:#fff;background:linear-gradient(135deg,var(--blue),#5B7BE0);border-radius:999px;padding:2px 8px;}
/* vista "en construcción" (IA) */
.v2-app .paych-wip{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;padding:20px 24px 8px;}
.v2-app .paych-wip-ic{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,var(--blue),#5B7BE0);display:flex;align-items:center;justify-content:center;}
.v2-app .paych-wip-ic .ic{width:28px;height:28px;color:#fff;}
.v2-app .paych-wip-t{font-family:'Saira',sans-serif;font-size:22px;font-weight:700;color:var(--navy);}
.v2-app .paych-wip-s{font-size:13.5px;color:var(--ink-2);line-height:1.5;max-width:380px;}
.v2-app .paych-wip .btn{margin-top:6px;}
/* header con acento IA */
.v2-app .pay-mic.ia{background:linear-gradient(135deg,var(--blue),#5B7BE0);}
.v2-app .pay-mic.ia .ic{color:#fff;}
/* formulario carga con IA: 2 zonas de drag&drop */
.v2-app .ia-sec{margin-bottom:20px;}
.v2-app .ia-sec:last-child{margin-bottom:0;}
.v2-app .ia-req{font-family:'Roboto',sans-serif;letter-spacing:0;text-transform:none;font-size:11px;font-weight:600;color:var(--blue-d);background:var(--sky);border:1px solid #BBDDED;border-radius:999px;padding:1px 8px;}
.v2-app .ia-hint{font-size:12.5px;color:var(--ink-2);line-height:1.45;margin:-2px 0 10px;}
.v2-app .ia-drop{position:relative;display:flex;align-items:center;gap:14px;padding:20px;border:1.5px dashed var(--line);border-radius:12px;background:var(--paper-3);color:var(--ink-2);cursor:pointer;transition:border-color .15s,background .15s;font-size:13.5px;}
.v2-app .ia-drop:hover{border-color:var(--blue);background:#fff;}
.v2-app .ia-drop>.ic{width:26px;height:26px;color:var(--navy);flex-shrink:0;}
.v2-app .ia-drop b{color:var(--ink);font-weight:600;}
.v2-app .ia-drop-s{font-size:11.5px;color:var(--ink-3);margin-top:2px;}
.v2-app .ia-drop.disabled{cursor:not-allowed;border-color:var(--line-2);background:var(--paper-2);color:var(--ink-3);opacity:.8;}
.v2-app .ia-drop.disabled:hover{border-color:var(--line-2);background:var(--paper-2);}
.v2-app .ia-drop.disabled>.ic{color:var(--ink-3);}
/* input file invisible que cubre la zona (clic + drop nativo) */
.v2-app .ia-file{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;}
.v2-app .ia-file::-webkit-file-upload-button{cursor:pointer;}
/* chips de archivos seleccionados */
.v2-app .ia-chips{display:flex;flex-direction:column;gap:8px;margin-top:10px;}
.v2-app .ia-chip{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:13px;}
.v2-app .ia-chip.op{border-color:#BFE3CB;background:#F5FBF7;}
.v2-app .ia-chip>.ic{width:17px;height:17px;color:var(--blue);flex-shrink:0;}
.v2-app .ia-chip.op>.ic{color:var(--green);}
.v2-app .ia-chip-n{font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;}
.v2-app .ia-chip-sz{font-family:'JetBrains Mono',monospace;font-size:11.5px;color:var(--ink-3);margin-left:auto;flex-shrink:0;}
.v2-app .ia-chip-x{width:26px;height:26px;border:none;background:transparent;color:var(--ink-3);cursor:pointer;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.v2-app .ia-chip-x:hover{background:var(--paper-3);color:var(--danger);}
.v2-app .ia-chip-x .ic{width:15px;height:15px;}
.v2-app .ia-foot-count{font-size:13.5px;font-weight:600;color:var(--navy);}
/* alerta de error en el form IA */
.v2-app .ia-alert{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;margin-bottom:18px;border:1px solid #F2C6C2;background:#FDF2F1;border-radius:10px;font-size:13px;color:#9B2C22;line-height:1.4;}
.v2-app .ia-alert .ic{width:17px;height:17px;flex-shrink:0;margin-top:1px;color:var(--danger);}
/* overlay de espera del analyze (LLM, puede tardar minutos) */
.v2-app .ia-wait{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:34px 28px 26px;}
.v2-app .ia-spin{width:42px;height:42px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--blue);animation:ia-spin .8s linear infinite;}
@keyframes ia-spin{to{transform:rotate(360deg);}}
.v2-app .ia-wait-t{font-family:'Saira',sans-serif;font-size:18px;font-weight:700;color:var(--navy);}
.v2-app .ia-wait-s{font-size:13px;color:var(--ink-2);line-height:1.5;max-width:340px;min-height:20px;}
.v2-app .ia-progress{width:260px;max-width:80%;height:7px;border-radius:999px;background:var(--paper-3);overflow:hidden;margin-top:4px;}
.v2-app .ia-progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--blue),#5B7BE0);transition:width .9s linear;}
.v2-app .ia-wait-time{font-family:'JetBrains Mono',monospace;font-size:11.5px;color:var(--ink-3);}
/* motor de IA offline (B2B-020) */
.v2-app .ia-offline{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;padding:26px 24px 12px;}
.v2-app .ia-offline-ic{width:56px;height:56px;border-radius:50%;background:var(--paper-3);display:flex;align-items:center;justify-content:center;}
.v2-app .ia-offline-ic .ic{width:26px;height:26px;color:var(--ink-3);}
.v2-app .ia-offline-btns{display:flex;gap:10px;margin-top:8px;}

/* ============================================================
   Resultado del análisis IA — V2PayAnalysisModal (B2B-019).
   ============================================================ */
.v2-app .an-modal{width:760px;max-width:100%;max-height:92%;background:var(--paper-2);border-radius:18px;box-shadow:0 40px 90px -30px rgba(4,41,59,0.6);display:flex;flex-direction:column;overflow:hidden;position:relative;}
.v2-app .an-banner{display:flex;align-items:center;gap:10px;padding:12px 24px;background:#FFF6E6;border-bottom:1px solid #F3E1BC;color:#8A5A12;font-size:13px;line-height:1.4;}
.v2-app .an-banner .ic{width:18px;height:18px;flex-shrink:0;}
.v2-app .an-tabs{display:flex;gap:2px;padding:0 24px;border-bottom:1px solid var(--line);flex-shrink:0;overflow-x:auto;}
.v2-app .an-tab{position:relative;background:none;border:none;cursor:pointer;padding:13px 12px;font-family:'Roboto',sans-serif;font-size:13.5px;font-weight:600;color:var(--ink-3);white-space:nowrap;display:flex;align-items:center;gap:7px;border-bottom:2px solid transparent;margin-bottom:-1px;}
.v2-app .an-tab:hover{color:var(--ink);}
.v2-app .an-tab.on{color:var(--blue-d);border-bottom-color:var(--blue);}
.v2-app .an-tab-n{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;background:var(--paper-3);color:var(--ink-2);border-radius:999px;padding:1px 7px;}
.v2-app .an-tab.on .an-tab-n{background:var(--sky);color:var(--blue-d);}
.v2-app .an-body{flex:1;overflow-y:auto;padding:20px 24px;min-height:0;}
.v2-app .an-body::-webkit-scrollbar{width:8px;}
.v2-app .an-body::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px;}
.v2-app .an-empty{padding:40px 20px;text-align:center;color:var(--ink-3);font-size:13.5px;}
.v2-app .an-grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.v2-app .an-card{border:1px solid var(--line);border-radius:12px;padding:16px 18px;background:#fff;}
.v2-app .an-card-t{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--ink-3);margin-bottom:12px;}
.v2-app .an-kv{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--line-2);font-size:13px;color:var(--ink-2);}
.v2-app .an-kv:last-child{border-bottom:none;}
.v2-app .an-kv b{font-weight:600;color:var(--ink);text-align:right;}
/* tarjeta de aviso (cuenta ≠ pagador) */
.v2-app .an-card-msg{display:flex;flex-direction:column;align-items:flex-start;gap:8px;border-color:#F2C6C2;background:#FDF2F1;}
.v2-app .an-msg-ic{width:40px;height:40px;border-radius:50%;background:#F7D9D5;display:flex;align-items:center;justify-content:center;}
.v2-app .an-msg-ic .ic{width:20px;height:20px;color:var(--danger);}
.v2-app .an-msg-t{font-family:'Saira',sans-serif;font-size:16px;font-weight:700;color:#9B2C22;}
.v2-app .an-msg-s{font-size:13px;color:#7A3129;line-height:1.5;}
.v2-app .an-msg-s b{font-weight:700;}
/* lista de items (comprobantes / medios / archivos) */
.v2-app .an-list{display:flex;flex-direction:column;gap:8px;}
.v2-app .an-item{display:flex;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:#fff;}
.v2-app .an-item-main{flex:1;min-width:0;}
.v2-app .an-item-t{font-family:'JetBrains Mono',monospace;font-size:13.5px;font-weight:600;color:var(--ink);}
.v2-app .an-item-s{font-size:12px;color:var(--ink-3);margin-top:3px;line-height:1.35;}
.v2-app .an-item-side{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0;}
.v2-app .an-item-amt{font-family:'JetBrains Mono',monospace;font-size:13.5px;font-weight:700;color:var(--navy);}
/* badges de estado */
.v2-app .an-badge{display:inline-flex;align-items:center;gap:4px;font-family:'Roboto',sans-serif;font-size:11.5px;font-weight:600;border-radius:999px;padding:2px 9px;white-space:nowrap;}
.v2-app .an-badge .ic{width:12px;height:12px;}
.v2-app .an-badge.ok{background:#E7F3EB;color:#1E7A3D;}
.v2-app .an-badge.warn{background:#FBEED0;color:#8A5A12;}
.v2-app .an-badge.danger{background:#FBE0DC;color:#9B2C22;}
.v2-app .an-badge.info{background:var(--sky);color:var(--blue-d);}
.v2-app .an-badge.muted{background:var(--paper-3);color:var(--ink-3);}
/* tabla de retenciones */
.v2-app .an-tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;}
.v2-app .an-table{width:100%;border-collapse:collapse;font-size:12.5px;min-width:640px;}
.v2-app .an-table th{text-align:left;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-3);font-weight:600;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--paper-3);}
.v2-app .an-table td{padding:10px 12px;border-bottom:1px solid var(--line-2);color:var(--ink);}
.v2-app .an-table tr:last-child td{border-bottom:none;}
.v2-app .an-table .r{text-align:right;}
.v2-app .an-table .c{text-align:center;}
.v2-app .an-table .mono{font-family:'JetBrains Mono',monospace;}
.v2-app .an-foot-note{font-size:12.5px;color:var(--ink-3);line-height:1.4;}
.v2-app .an-foot-err{font-size:12.5px;color:#9B2C22;font-weight:600;line-height:1.4;}
.v2-app .an-banner.danger{background:#FBE0DC;border-bottom-color:#F2C6C2;color:#9B2C22;}
.v2-app .an-banner.danger .ic{color:var(--danger);}
.v2-app .an-alert{margin:14px 0 4px;padding:10px 12px;border-radius:9px;font-size:12.5px;line-height:1.4;}
.v2-app .an-alert.warn{background:#FBEED0;color:#8A5A12;border:1px solid #F3E1BC;}
/* pantalla de éxito del guardado */
.v2-app .an-success{display:flex;flex-direction:column;align-items:center;text-align:center;padding:36px 40px 30px;}
.v2-app .an-succ-ic{width:60px;height:60px;border-radius:50%;background:#E7F3EB;display:flex;align-items:center;justify-content:center;margin-bottom:16px;}
.v2-app .an-succ-ic .ic{width:28px;height:28px;color:var(--green);}
.v2-app .an-succ-t{font-family:'Saira',sans-serif;font-size:22px;font-weight:700;color:var(--navy);}
.v2-app .an-succ-s{font-size:13.5px;color:var(--ink-2);line-height:1.5;max-width:400px;margin-top:8px;}
.v2-app .an-succ-card{width:100%;max-width:420px;border:1px solid var(--line);border-radius:12px;margin:20px 0 6px;overflow:hidden;}
.v2-app .an-succ-row{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line-2);font-size:13px;color:var(--ink-2);}
.v2-app .an-succ-row:last-child{border-bottom:none;}
.v2-app .an-succ-row b{font-family:'JetBrains Mono',monospace;color:var(--ink);}
.v2-app .an-success .btn.primary{margin-top:18px;min-width:160px;}
/* confirmación de duplicado */
.v2-app .an-confirm{display:flex;flex-direction:column;align-items:center;text-align:center;padding:26px 24px 10px;}
.v2-app .an-confirm-ic{width:56px;height:56px;border-radius:50%;background:#FBEED0;display:flex;align-items:center;justify-content:center;margin-bottom:14px;}
.v2-app .an-confirm-ic .ic{width:26px;height:26px;color:#B7791F;}
.v2-app .an-confirm-t{font-family:'Saira',sans-serif;font-size:20px;font-weight:700;color:var(--navy);}
.v2-app .an-confirm-s{font-size:13.5px;color:var(--ink-2);line-height:1.55;max-width:440px;margin-top:8px;}
.v2-app .an-confirm-s b{color:var(--ink);font-weight:600;}
/* detalle de precobranza (V2PreorderDetailModal) */
.v2-app .an-detail-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;}
.v2-app .an-detail-amt{font-family:'JetBrains Mono',monospace;font-size:22px;font-weight:700;color:var(--navy);}
.v2-app .an-sec-t{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--ink-3);margin:0 0 10px;}
/* fila de precobranza clickeable en la solapa Pagos */
.v2-app .dt-row.pre-click{cursor:pointer;}
.v2-app .dt-row.pre-click:hover{background:var(--paper);}

/* ============================================================
   Productos · catálogo + ficha (drawer) — productos-page.js / 05.
   ============================================================ */
.v2-app .cat-wrap{flex:1;display:flex;flex-direction:column;min-height:0;}
.v2-app .cat-table{flex:1;display:flex;flex-direction:column;min-height:0;padding:0;overflow:hidden;margin-top:4px;}
.v2-app .pr-scroll{flex:1;overflow-y:auto;scrollbar-gutter:stable;}
.v2-app .pr-scroll::-webkit-scrollbar{width:9px;}
.v2-app .pr-scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:5px;}
.v2-app .pr-scroll::-webkit-scrollbar-track{background:transparent;}
.v2-app .pr-row{display:grid;grid-template-columns:var(--cols);align-items:center;gap:14px;padding:0 20px;}
/* +9px a la derecha = ancho del scrollbar (::-webkit-scrollbar width:9px) que el
   .pr-scroll reserva via scrollbar-gutter, para que el header alinee con las filas. */
.v2-app .pr-row.head{height:44px;border-bottom:1px solid var(--line);font-size:11px;letter-spacing:.4px;text-transform:uppercase;color:var(--ink-3);font-weight:600;flex-shrink:0;padding-right:29px;}
.v2-app .pr-row.head .r{text-align:right;}.v2-app .pr-row.head .c{text-align:center;}
.v2-app .pr-scroll .pr-row{height:56px;border-bottom:1px solid var(--line-2);}
.v2-app .pr-scroll .pr-row:last-child{border-bottom:none;}
.v2-app .pr-scroll .pr-row:hover{background:var(--paper);}
.v2-app .pr-scroll .pr-row[data-sku]{cursor:pointer;}
/* Fondo blanco: las fotos de producto vienen con fondo blanco, el gris hacía marco. */
.v2-app .pr-foto{width:38px;height:38px;border-radius:8px;background:#fff;border:1px solid var(--line-2);display:flex;align-items:center;justify-content:center;color:var(--ink-3);overflow:hidden;}
.v2-app .pr-foto .ic{width:19px;height:19px;}
/* B2B-014: miniatura real de producto dentro del placeholder de foto */
.v2-app .pr-foto img,.v2-app .pl-foto img,.v2-app .pdo-foto img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block;}
.v2-app .pr-sku{font-family:'JetBrains Mono',monospace;font-size:12.5px;font-weight:600;color:var(--blue);}
.v2-app .pr-name{font-size:14px;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.v2-app .pr-cat{font-size:12.5px;color:var(--ink-2);}
.v2-app .pr-sub{font-size:12.5px;color:var(--ink-3);}
.v2-app .pr-um{font-size:12.5px;color:var(--ink-3);}
.v2-app .pr-price{font-family:'JetBrains Mono',monospace;font-size:14px;font-weight:700;color:var(--navy);text-align:right;}
.v2-app .pr-price .u{display:block;font-size:10.5px;font-weight:500;color:var(--ink-3);letter-spacing:0;}
.v2-app .pr-row.out{opacity:.6;}
.v2-app .cat-count{font-size:12.5px;color:var(--ink-3);margin-left:auto;align-self:center;}
.v2-app .cat-empty{padding:60px 20px;text-align:center;color:var(--ink-3);font-size:14px;}
.v2-app .catfoot{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-top:1px solid var(--line);background:var(--paper-3);font-size:13px;color:var(--ink-2);flex-shrink:0;}
.v2-app .cat-main{flex:1;display:flex;gap:18px;min-height:0;}
.v2-app .cat-main .cat-table{flex:1;min-width:0;}
.v2-app .pr-row.sel{background:#EAF7FE;box-shadow:inset 3px 0 0 var(--blue);}
.v2-app .pdt-eyebrow{font-size:11px;letter-spacing:.5px;text-transform:uppercase;font-weight:700;color:var(--blue);}
.v2-app .pdt-sku{font-family:'JetBrains Mono',monospace;font-size:13.5px;color:var(--ink-2);}
/* drawer lateral de detalle */
.v2-app .pdt-panel{width:430px;flex-shrink:0;display:flex;flex-direction:column;min-height:0;background:var(--paper-2);border:1px solid var(--line);border-radius:14px;overflow:hidden;animation:v2ppin .22s ease;}
@keyframes v2ppin{from{opacity:0;transform:translateX(14px);}to{opacity:1;transform:none;}}
.v2-app .pp-head{display:flex;align-items:flex-start;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line);flex-shrink:0;}
.v2-app .pp-htxt{flex:1;min-width:0;}
.v2-app .pp-title{font-family:'Saira',sans-serif;font-size:18px;font-weight:700;color:var(--navy);line-height:1.2;margin-top:4px;}
.v2-app .pp-x{width:32px;height:32px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--ink-2);flex-shrink:0;}
.v2-app .pp-x:hover{background:var(--paper-3);}.v2-app .pp-x .ic{width:16px;height:16px;}
.v2-app .pp-scroll{flex:1;overflow-y:auto;padding:18px;}
.v2-app .pp-scroll::-webkit-scrollbar{width:8px;}
.v2-app .pp-scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px;}
.v2-app .pp-img{height:184px;border:1px solid var(--line-2);border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;color:#A9B7C0;overflow:hidden;}
.v2-app .pp-img .ic{width:56px;height:56px;}
/* B2B-014: imágenes reales de la galería del detalle */
.v2-app .pp-img img{width:100%;height:100%;object-fit:contain;display:block;}
.v2-app .pp-imgload{font-size:12px;color:var(--ink-3);}
.v2-app .pp-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px;}
.v2-app .pp-thumb{height:48px;border:1px solid var(--line);border-radius:8px;background:#fff;display:flex;align-items:center;justify-content:center;color:var(--ink-3);cursor:pointer;overflow:hidden;}
.v2-app .pp-thumb.active{border-color:var(--blue);box-shadow:0 0 0 2px rgba(0,174,239,.18);}
.v2-app .pp-thumb .ic{width:18px;height:18px;}
.v2-app .pp-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.v2-app .pp-idrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:15px;}
.v2-app .pp-sec{margin-top:22px;}
.v2-app .pp-sec-t{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-3);font-weight:700;margin-bottom:4px;}
.v2-app .pp-specs .spec-row{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--line-2);font-size:13.5px;}
.v2-app .pp-specs .spec-row:last-child{border-bottom:none;}
.v2-app .pp-specs .spec-row .sl{color:var(--ink-2);}
.v2-app .pp-specs .spec-row .sv{color:var(--ink);font-weight:600;text-align:right;}
/* La fila entera es un <a>: hereda color, sin subrayado, hover en el botoncito. */
.v2-app .doc-row{display:flex;align-items:center;gap:13px;padding:12px 0;border-bottom:1px solid var(--line-2);text-decoration:none;color:inherit;cursor:pointer;}
.v2-app .doc-row:last-child{border-bottom:none;}
.v2-app .doc-row:hover .doc-dl{border-color:var(--blue);color:var(--blue);}
.v2-app .doc-ic{width:38px;height:38px;border-radius:9px;background:#FBE9E7;display:flex;align-items:center;justify-content:center;color:var(--danger);flex-shrink:0;}
.v2-app .doc-ic .ic{width:18px;height:18px;}
.v2-app .doc-tx{flex:1;min-width:0;}
.v2-app .doc-nm{font-size:13.5px;font-weight:600;color:var(--ink);}
.v2-app .doc-meta{font-size:11.5px;color:var(--ink-3);font-family:'JetBrains Mono',monospace;margin-top:2px;}
.v2-app .doc-dl{width:34px;height:34px;border-radius:8px;border:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:center;color:var(--ink-2);cursor:pointer;flex-shrink:0;}
.v2-app .doc-dl:hover{border-color:var(--blue);color:var(--blue);}.v2-app .doc-dl .ic{width:16px;height:16px;}

/* ── Input de búsqueda dentro de .input + menú de Exportar ── */
.v2-app .input input{flex:1;min-width:130px;border:none;background:transparent;outline:none;font-family:'Roboto',sans-serif;font-size:13px;color:var(--ink);}
.v2-app .input input::placeholder{color:var(--ink-3);}
.v2-app .exp-wrap{position:relative;}
.v2-app .exp-menu{position:absolute;top:calc(100% + 6px);right:0;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 32px rgba(15,42,58,.14);overflow:hidden;z-index:30;min-width:200px;}
.v2-app .exp-item{display:flex;align-items:center;gap:10px;width:100%;padding:11px 14px;border:none;background:none;font:inherit;font-size:13.5px;color:var(--ink-2);cursor:pointer;text-align:left;}
.v2-app .exp-item:hover{background:var(--paper-3);color:var(--ink);}
.v2-app .exp-item .ic{width:16px;height:16px;color:var(--ink-3);}

/* ============================================================
   Pedidos · POS (Nuevo pedido) + Seguimiento (tracking) — pedidos-page.js / 05.
   ============================================================ */
.v2-app .qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:8px;overflow:hidden;flex-shrink:0;background:#fff;}
.v2-app .qty button{width:30px;height:32px;border:none;background:#fff;cursor:pointer;color:var(--ink-2);font-size:16px;display:flex;align-items:center;justify-content:center;}
.v2-app .qty button:hover{background:var(--paper-3);}
.v2-app .qty .q{width:42px;height:32px;box-sizing:border-box;text-align:center;font-family:'JetBrains Mono',monospace;font-size:14px;font-weight:600;color:inherit;border:none;border-left:1px solid var(--line);border-right:1px solid var(--line);border-radius:0;background:#fff;padding:0;outline:none;-moz-appearance:textfield;}
.v2-app .qty .q:focus{background:var(--sky);}
.v2-app .ci-rm{width:30px;height:30px;border:none;background:none;cursor:pointer;color:var(--ink-3);display:flex;align-items:center;justify-content:center;border-radius:7px;flex-shrink:0;}
.v2-app .ci-rm:hover{background:#FBE9E7;color:var(--danger);}
.v2-app .ci-rm .ic{width:15px;height:15px;}
.v2-app .pos{flex:1;display:flex;flex-direction:column;min-height:0;gap:16px;}
.v2-app .pos-suc{display:flex;align-items:center;gap:16px;background:var(--paper-2);border:1px solid var(--line);border-radius:12px;padding:13px 18px;flex-shrink:0;}
.v2-app .pos-suc .ps-ic{width:42px;height:42px;border-radius:10px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.v2-app .pos-suc .ps-ic .ic{width:21px;height:21px;}
.v2-app .ps-lbl{font-size:10.5px;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-3);}
.v2-app .pos-sucsel{margin-top:3px;display:flex;align-items:center;gap:8px;}
.v2-app .pos-sucsel select{appearance:none;-webkit-appearance:none;border:1px solid var(--line);background:#fff;border-radius:9px;padding:7px 34px 7px 12px;font-family:inherit;font-size:15px;font-weight:700;color:var(--navy);cursor:pointer;outline:none;}
.v2-app .pos-sucsel select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,174,239,.15);}
.v2-app .pos-sucsel{position:relative;}
.v2-app .pos-sucsel .ic{position:absolute;right:11px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--ink-3);pointer-events:none;}
.v2-app .pos-sucaddr{font-size:13px;color:var(--ink-2);padding-left:10px;border-left:1px solid var(--line);margin-left:4px;}
.v2-app .pos-company{margin-top:3px;font-size:15px;font-weight:700;color:var(--navy);}
.v2-app .pos-pricelist{margin-top:2px;font-size:12px;color:var(--ink-2);}
.v2-app .pos-pricelist b{color:var(--ink);font-weight:700;}
.v2-app .pos-sep{align-self:stretch;width:1px;background:var(--line);margin:0 4px;}
/* B2B-016: tipo + fecha de entrega en la barra del nuevo pedido */
.v2-app .pos-delivrow{margin-top:3px;display:flex;align-items:center;gap:8px;}
.v2-app .pos-delivrow select,.v2-app .pos-delivrow input[type=date]{appearance:none;-webkit-appearance:none;border:1px solid var(--line);background:#fff;border-radius:9px;padding:7px 12px;font-family:inherit;font-size:13.5px;font-weight:600;color:var(--navy);cursor:pointer;outline:none;}
.v2-app .pos-delivrow select:focus,.v2-app .pos-delivrow input[type=date]:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,174,239,.15);}
/* B2B-016: banner de errores de validación del alta */
.v2-app .pos-errbox{display:flex;gap:11px;background:#FBE9E7;border:1px solid #F3C0BA;border-radius:11px;padding:12px 16px;flex-shrink:0;color:var(--danger);}
.v2-app .pos-errbox .ic{width:18px;height:18px;flex-shrink:0;margin-top:1px;}
.v2-app .pos-errbox .pe-errt{font-weight:700;font-size:13.5px;margin-bottom:3px;}
.v2-app .pos-errbox ul{margin:0;padding-left:18px;font-size:13px;color:var(--ink);}
.v2-app .pos-errbox li{margin:2px 0;}
/* B2B-016: aclaración de precios sin impuestos en el pie del nuevo pedido */
.v2-app .pos-taxnote{font-size:11.5px;color:var(--ink-3);font-style:italic;}
.v2-app .pos-bar{display:flex;gap:12px;align-items:center;flex-shrink:0;}
.v2-app .pos-search{flex:1;position:relative;display:flex;align-items:center;gap:11px;height:58px;background:#fff;border:2px solid var(--blue);border-radius:12px;padding:0 16px;box-shadow:0 2px 10px rgba(0,174,239,.13);}
.v2-app .pos-search>.ic{width:20px;height:20px;color:var(--blue);flex-shrink:0;}
.v2-app .pos-prod{flex:1;border:none;outline:none;background:none;font-size:16px;font-family:inherit;color:var(--ink);padding:0;}
.v2-app .pos-prod::placeholder{color:var(--ink-3);}
/* Scrollea: el typeahead trae hasta 50 productos (antes eran 8 y entraban todos). */
.v2-app .pos-drop{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 32px rgba(19,33,43,.17);z-index:30;overflow-y:auto;overscroll-behavior:contain;max-height:min(56vh,440px);}
/* Aviso de "hay más productos que los que se muestran", pegado abajo del listado. */
.v2-app .pd-more{position:sticky;bottom:0;background:var(--paper-2);border-top:1px solid var(--line);padding:9px 16px;font-size:12px;color:var(--ink-3);text-align:center;}
.v2-app .pd-opt{display:flex;align-items:center;gap:11px;padding:11px 16px;cursor:pointer;border-bottom:1px solid var(--line-2);}
.v2-app .pd-opt:last-child{border-bottom:none;}
.v2-app .pd-opt.hi,.v2-app .pd-opt:hover{background:#EAF7FE;}
.v2-app .pdo-foto{width:34px;height:34px;border-radius:7px;background:#fff;border:1px solid var(--line-2);display:flex;align-items:center;justify-content:center;color:var(--ink-3);flex-shrink:0;overflow:hidden;}
.v2-app .pdo-foto .ic{width:17px;height:17px;}
.v2-app .pdo-txt{min-width:0;}
.v2-app .pdo-name{font-size:14px;font-weight:600;color:var(--ink);}
.v2-app .pdo-meta{font-size:12px;color:var(--ink-3);font-family:'JetBrains Mono',monospace;margin-top:2px;}
.v2-app .pos-qtyf{display:flex;flex-direction:column;justify-content:center;height:58px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:0 16px;}
.v2-app .pos-qtyf label{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-3);}
.v2-app .pos-qty{width:78px;border:none;outline:none;background:none;font-family:'JetBrains Mono',monospace;font-size:20px;font-weight:700;color:var(--navy);padding:2px 0 0;text-align:center;-moz-appearance:textfield;}
.v2-app .pos-qty::-webkit-outer-spin-button,.v2-app .pos-qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.v2-app .pos-add{height:58px;padding:0 26px;font-size:15px;flex-shrink:0;}
.v2-app .pos-tablewrap{flex:1;display:flex;flex-direction:column;min-height:0;padding:0;overflow:hidden;}
.v2-app .pl-row{display:grid;grid-template-columns:var(--cols);align-items:center;gap:14px;padding:0 22px;}
.v2-app .pl-row.head{height:46px;border-bottom:1px solid var(--line);font-size:11px;letter-spacing:.4px;text-transform:uppercase;color:var(--ink-3);font-weight:600;flex-shrink:0;}
.v2-app .pl-row.head .r{text-align:right;}
.v2-app .pl-row.head .c{text-align:center;}
.v2-app .pos-lines{flex:1;overflow-y:auto;}
.v2-app .pos-lines .pl-row{height:62px;border-bottom:1px solid var(--line-2);}
.v2-app .pos-lines .pl-row:last-child{border-bottom:none;}
.v2-app .pos-lines::-webkit-scrollbar{width:9px;}
.v2-app .pos-lines::-webkit-scrollbar-thumb{background:var(--line);border-radius:5px;}
.v2-app .pos-lines::-webkit-scrollbar-track{background:transparent;}
.v2-app .pl-i{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--ink-3);}
.v2-app .pl-foto{width:40px;height:40px;border-radius:9px;background:#fff;border:1px solid var(--line-2);display:flex;align-items:center;justify-content:center;color:var(--ink-3);overflow:hidden;}
.v2-app .pl-foto .ic{width:20px;height:20px;}
.v2-app .pl-sku{font-family:'JetBrains Mono',monospace;font-size:12.5px;font-weight:600;color:var(--blue);}
.v2-app .pl-name{font-size:14px;font-weight:500;color:var(--ink);}
.v2-app .pl-meta{display:flex;align-items:center;gap:10px;margin-top:3px;}
.v2-app .pl-um{font-size:11.5px;color:var(--ink-3);}
.v2-app .pl-notebtn{border:none;background:none;cursor:pointer;font-family:inherit;font-size:11.5px;font-weight:600;color:var(--blue);padding:0;display:inline-flex;align-items:center;gap:4px;}
.v2-app .pl-notebtn::before{content:"+";font-weight:700;}
.v2-app .pl-notebtn.has{color:var(--ink-2);}
.v2-app .pl-notebtn.has::before{content:"✎ ";}
.v2-app .pl-obs{grid-column:1/-1;padding:0 22px 14px 150px;}
.v2-app .pl-obs-in{width:100%;border:1px solid var(--line);border-radius:9px;background:#FFFDF7;padding:9px 12px;font-family:inherit;font-size:13px;color:var(--ink);resize:vertical;outline:none;line-height:1.4;}
.v2-app .pl-obs-in:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,174,239,.13);}
.v2-app .pl-obs-ro{display:flex;align-items:center;gap:8px;width:100%;background:#FBF7EC;border:1px solid var(--line-2);border-radius:9px;padding:7px 12px;font-size:12.5px;color:var(--ink-2);cursor:pointer;}
.v2-app .pl-obs-ro .ic{width:13px;height:13px;color:#9A6B14;flex-shrink:0;}
.v2-app .pl-obs-ro b{margin-left:auto;font-size:11px;color:var(--blue);font-weight:600;}
.v2-app .pl-unit{font-family:'JetBrains Mono',monospace;font-size:13px;text-align:right;color:var(--ink-2);}
.v2-app .pl-kg{font-family:'JetBrains Mono',monospace;font-size:13px;text-align:right;color:var(--ink-2);}
.v2-app .pl-qtyc{display:flex;justify-content:center;}
.v2-app .pl-sub{font-family:'JetBrains Mono',monospace;font-size:14px;font-weight:600;text-align:right;color:var(--ink);}
.v2-app .pl-iva{font-family:'JetBrains Mono',monospace;font-size:13px;text-align:right;color:var(--ink-2);}
.v2-app .pl-tot{font-family:'JetBrains Mono',monospace;font-size:14px;font-weight:700;text-align:right;color:var(--navy);}
.v2-app .pl-rm-c{display:flex;justify-content:center;}
.v2-app .pos-empty{padding:56px 20px;text-align:center;color:var(--ink-3);}
.v2-app .pos-empty .ic{width:44px;height:44px;color:var(--line);margin-bottom:14px;}
.v2-app .pos-empty .pe-t{font-size:15px;font-weight:600;color:var(--ink-2);}
.v2-app .pos-empty .pe-sub{font-size:13px;margin-top:8px;line-height:1.5;}
.v2-app .pos-empty kbd{font-family:'JetBrains Mono',monospace;font-size:11px;background:var(--paper-3);border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;padding:1px 7px;color:var(--ink-2);}
.v2-app .pos-foot{display:flex;align-items:center;gap:28px;background:var(--paper-2);border:1px solid var(--line);border-radius:12px;padding:15px 22px;flex-shrink:0;}
.v2-app .pf-meta{display:flex;gap:24px;font-size:13px;color:var(--ink-2);}
.v2-app .pf-meta b{font-family:'JetBrains Mono',monospace;color:var(--ink);font-size:15px;font-weight:700;margin-right:4px;}
.v2-app .pos-foot .pf-tot{margin-left:auto;display:flex;gap:30px;align-items:center;}
.v2-app .pft-row{display:flex;flex-direction:column;align-items:flex-end;font-size:11.5px;color:var(--ink-3);}
.v2-app .pft-row b{font-family:'JetBrains Mono',monospace;font-size:15px;font-weight:600;color:var(--ink);margin-top:2px;}
.v2-app .pft-row.big span{color:var(--ink-2);}
.v2-app .pft-row.big b{font-size:27px;font-weight:700;color:var(--navy);letter-spacing:-.5px;}
.v2-app .pos-confirm{height:50px;padding:0 26px;font-size:15px;}
.v2-app .pos-gnote{display:flex;gap:12px;align-items:flex-start;background:var(--paper-2);border:1px solid var(--line);border-radius:12px;padding:14px 18px;flex-shrink:0;}
.v2-app .pos-gnote>.ic{width:18px;height:18px;color:var(--ink-3);margin-top:8px;flex-shrink:0;}
.v2-app .pos-gnote-wrap{flex:1;}
.v2-app .pos-gnote-l{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-3);font-weight:600;margin-bottom:6px;}
.v2-app .pos-gnote-in{width:100%;border:1px solid var(--line);border-radius:9px;background:#fff;padding:9px 12px;font-family:inherit;font-size:13.5px;color:var(--ink);resize:vertical;outline:none;line-height:1.45;}
.v2-app .pos-gnote-in:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,174,239,.13);}
.v2-app .ord-print-acts{display:flex;gap:10px;width:100%;}
.v2-app .ord-print-acts .btn{flex:1;justify-content:center;height:46px;}
.v2-app .trk-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:16px;padding-right:2px;}
.v2-app .trk-list::-webkit-scrollbar{width:8px;}
.v2-app .trk-list::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px;}
.v2-app .trk-card{border:1px solid var(--line);border-radius:12px;background:var(--paper-2);padding:18px 22px;}
.v2-app .trk-head{display:flex;align-items:center;gap:14px;margin-bottom:20px;}
.v2-app .trk-id{font-family:'JetBrains Mono',monospace;font-size:15px;font-weight:600;color:var(--navy);display:flex;align-items:center;gap:6px;}
/* Ojito de "ver la orden de venta" pegado al número, en la card de Seguimiento. */
.v2-app .trk-eye{width:26px;height:26px;border-radius:7px;border:none;background:transparent;display:inline-flex;align-items:center;justify-content:center;color:var(--blue);cursor:pointer;padding:0;transition:background .15s;}
.v2-app .trk-eye:hover{background:var(--sky);}
.v2-app .trk-eye .ic{width:17px;height:17px;}
.v2-app .trk-meta{font-size:12px;color:var(--ink-3);margin-top:3px;}
.v2-app .trk-total{margin-left:auto;font-family:'JetBrains Mono',monospace;font-size:16px;font-weight:600;}
.v2-app .trk{display:flex;align-items:flex-start;}
.v2-app .trk-step{flex:1;display:flex;flex-direction:column;align-items:center;position:relative;}
.v2-app .trk-line{position:absolute;top:12px;left:-50%;width:100%;height:2px;background:var(--line);z-index:0;}
.v2-app .trk-step:first-child .trk-line{display:none;}
.v2-app .trk-step.done .trk-line,.v2-app .trk-step.cur .trk-line{background:var(--green);}
.v2-app .trk-dot{width:26px;height:26px;border-radius:50%;border:2px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:center;z-index:1;color:var(--ink-3);}
.v2-app .trk-dot .ic{width:13px;height:13px;}
.v2-app .trk-step.done .trk-dot{background:var(--green);border-color:var(--green);color:#fff;}
.v2-app .trk-step.cur .trk-dot{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 0 0 4px rgba(0,174,239,.16);}
.v2-app .trk-lbl{font-size:11.5px;color:var(--ink-3);margin-top:9px;text-align:center;}
.v2-app .trk-step.done .trk-lbl{color:var(--ink-2);}
.v2-app .trk-step.cur .trk-lbl{color:var(--navy);font-weight:600;}
.v2-app .trk-eta{margin-top:18px;padding-top:14px;border-top:1px solid var(--line-2);font-size:12.5px;color:var(--ink-2);display:flex;align-items:center;gap:8px;}
/* BACK-163: la orden entregada sigue en la lista unos días. Se distingue de las que
   están en curso con un acento verde, sin sacarla del mismo formato de card. */
.v2-app .trk-card.trk-done{border-color:#cfe7d6;background:#FAFDFB;}
.v2-app .trk-eta.trk-delivered{color:var(--green);font-weight:600;}
.v2-app .trk-eta.trk-delivered .ic{color:var(--green);}
.v2-app .trk-eta .ic{width:15px;height:15px;color:var(--blue);flex-shrink:0;}

/* ============================================================
   Lista de precios — precios-page.js / 05.
   ============================================================ */
.v2-app .lp-head{display:flex;align-items:center;gap:20px;background:var(--paper-2);border:1px solid var(--line);border-radius:14px;padding:18px 22px;flex-shrink:0;}
.v2-app .lp-badge{width:68px;height:50px;border-radius:11px;background:var(--navy);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;line-height:1;}
.v2-app .lp-badge .b1{font-family:'JetBrains Mono',monospace;font-size:17px;font-weight:700;}
.v2-app .lp-badge .b2{font-size:8.5px;letter-spacing:1px;margin-top:2px;opacity:.85;}
.v2-app .lp-htxt .t{font-size:17px;font-weight:700;color:var(--navy);}
.v2-app .lp-meta{display:flex;gap:22px;margin-top:6px;flex-wrap:wrap;}
.v2-app .lp-meta .m .l{font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-3);}
.v2-app .lp-meta .m .v{font-size:13px;font-weight:600;color:var(--ink);margin-top:2px;}
.v2-app .lp-actions{margin-left:auto;display:flex;gap:10px;}
.v2-app .lp-base{font-family:'JetBrains Mono',monospace;font-size:13px;color:var(--ink-3);text-align:right;text-decoration:line-through;text-decoration-color:var(--line);}
.v2-app .lp-disc{display:inline-flex;align-items:center;justify-content:center;font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:700;color:var(--green);background:#E7F3EB;border-radius:6px;padding:3px 8px;}
.v2-app .lp-discwrap{display:flex;justify-content:center;}
.v2-app .lp-net{font-family:'JetBrains Mono',monospace;font-size:14.5px;font-weight:700;color:var(--navy);text-align:right;}
.v2-app .lp-final{font-family:'JetBrains Mono',monospace;font-size:13px;color:var(--ink-2);text-align:right;}

/* ============================================================
   Herramientas · Calculadora de cables
   ============================================================ */
.v2-app .calc-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;flex:1;min-height:0;align-items:stretch;}
.v2-app .calc-left{display:flex;flex-direction:column;gap:20px;min-height:0;overflow-y:auto;padding-right:4px;}
.v2-app .calc-left::-webkit-scrollbar{width:8px;}
.v2-app .calc-left::-webkit-scrollbar-thumb{background:var(--line);border-radius:8px;}
.v2-app .calc-form{display:flex;flex-direction:column;gap:13px;padding:20px 22px;}
.v2-app .calc-row2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.v2-app .calc-go{margin-top:2px;height:48px;border:none;border-radius:11px;background:var(--blue);color:#fff;font-family:'Saira',sans-serif;font-size:15.5px;font-weight:700;letter-spacing:.3px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:9px;transition:background .15s,transform .05s;}
.v2-app .calc-go:hover{background:var(--blue-d);}
.v2-app .calc-go:active{transform:translateY(1px);}
.v2-app .calc-go .ic{width:18px;height:18px;}
.v2-app .calc-pdf{display:flex;flex-direction:column;min-height:0;background:#525659;}
.v2-app .calc-pdf-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 16px;background:#fff;border-bottom:1px solid var(--line);flex-shrink:0;}
.v2-app .calc-pdf-bar .nm{font-size:13px;font-weight:600;color:var(--navy);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.v2-app .calc-pdf-bar a{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:600;color:var(--blue);text-decoration:none;white-space:nowrap;}
.v2-app .calc-pdf-bar a:hover{text-decoration:underline;}
.v2-app .calc-pdf-bar a .ic{width:14px;height:14px;}
.v2-app .calc-pdf-frame{flex:1;width:100%;border:0;min-height:0;}
.v2-app .calc-pdf-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px;padding:40px;background:var(--paper-3);}
.v2-app .calc-pdf-empty .big{width:48px;height:48px;color:var(--ink-3);opacity:.55;}
.v2-app .calc-pdf-empty .t{font-family:'Saira',sans-serif;font-size:19px;font-weight:600;color:var(--ink-2);}
.v2-app .calc-pdf-empty .s{font-size:13px;color:var(--ink-3);max-width:300px;line-height:1.55;}
.v2-app .calc-fld{display:flex;flex-direction:column;gap:5px;}
.v2-app .calc-fld>.l{font-size:12.5px;font-weight:600;color:var(--ink-2);}
.v2-app .calc-ctrl{display:flex;align-items:center;gap:10px;height:42px;border:1px solid var(--line);border-radius:11px;background:var(--paper-3);padding:0 6px 0 14px;transition:border-color .15s,background .15s;}
.v2-app .calc-ctrl:focus-within{border-color:var(--blue);background:#fff;}
.v2-app .calc-ctrl input{flex:1;border:none;background:transparent;outline:none;font-family:'JetBrains Mono',monospace;font-size:16px;font-weight:600;color:var(--ink);min-width:0;}
.v2-app .calc-ctrl select{border:none;background:#fff;outline:none;font-family:'Roboto',sans-serif;font-size:13px;font-weight:600;color:var(--navy);height:34px;border-radius:8px;padding:0 8px;cursor:pointer;}
.v2-app .calc-seg{display:flex;gap:6px;flex-wrap:wrap;}
.v2-app .calc-seg button{flex:1;min-width:84px;height:42px;border:1px solid var(--line);border-radius:10px;background:var(--paper-2);font-family:'Roboto',sans-serif;font-size:13.5px;font-weight:600;color:var(--ink-2);cursor:pointer;transition:.15s;}
.v2-app .calc-seg button.active{border-color:var(--blue);background:#fff;color:var(--navy);box-shadow:0 0 0 1px var(--blue);}
.v2-app .calc-res{padding:0;overflow:hidden;display:flex;flex-direction:column;}
.v2-app .calc-res-top{background:linear-gradient(155deg,#0A6190 0%,var(--navy) 58%,#033B57 100%);color:#fff;padding:24px 26px;}
.v2-app .calc-res-eyebrow{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.72);}
.v2-app .calc-res-cable{font-family:'Saira',sans-serif;font-size:23px;font-weight:700;line-height:1.15;margin-top:8px;}
.v2-app .calc-res-row{display:flex;align-items:center;justify-content:space-between;padding:15px 26px;border-bottom:1px solid var(--line-2);}
.v2-app .calc-res-row:last-child{border-bottom:none;}
.v2-app .calc-res-row .k{font-size:13.5px;color:var(--ink-2);}
.v2-app .calc-res-row .v{font-family:'JetBrains Mono',monospace;font-size:17px;font-weight:700;color:var(--ink);}
.v2-app .calc-chip{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;padding:5px 11px;border-radius:999px;}
.v2-app .calc-chip.ok{color:var(--green);background:#E7F3EB;border:1px solid #cfe7d6;}
.v2-app .calc-chip.bad{color:var(--danger);background:#FBE9E7;border:1px solid #F0CFCB;}
.v2-app .calc-note{font-size:12px;color:var(--ink-3);line-height:1.5;padding:14px 26px;background:var(--paper-3);}
.v2-app .calc-disp{gap:7px;}
.v2-app .calc-disp-txt{font-size:11.5px;color:var(--ink-2);line-height:1.5;background:var(--paper-3);border:1px solid var(--line);border-radius:11px;padding:9px 12px;}
.v2-app .calc-disp-btn{align-self:flex-start;height:34px;padding:0 14px;border:1px solid var(--line);border-radius:9px;background:var(--paper-2);font-family:'Roboto',sans-serif;font-size:12.5px;font-weight:600;color:var(--navy);cursor:pointer;transition:.15s;}
.v2-app .calc-disp-btn:hover{border-color:var(--blue);background:#fff;}
.v2-app .calc-disp-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:2px;}
.v2-app .calc-disp-grid label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:var(--ink-2);}
.v2-app .calc-disp-grid select{height:42px;border:1px solid var(--line);border-radius:10px;background:var(--paper-3);padding:0 10px;font-family:'Roboto',sans-serif;font-size:14px;font-weight:600;color:var(--navy);cursor:pointer;}
.v2-app .calc-disp-grid select:focus{outline:none;border-color:var(--blue);background:#fff;}

/* ═══════════════════════════════════════════════════════════════════
   Login · Acceso (v2) — fuente: Claude Design login-page.js (desktop) +
   mobile-pages.js login() (mobile). Canvas fijo 1920×1080 escalado UNIFORME
   (contain) por b2bLoginScaler (--lg-scale); el split brand/form 52/48 se
   preserva en cualquier ventana. 2FA challenge (tf-*) derivado del login.
   ═══════════════════════════════════════════════════════════════════ */
.v2-app.lg-app{display:block;}
.v2-app .lgx{width:var(--v2-w,1920px);height:1080px;zoom:var(--v2-zoom,1);display:flex;background:var(--paper-2);overflow:hidden;position:relative;}
.v2-app .ml-host{display:none;}
@media (max-width:599px){
  .v2-app.lg-app{display:block;height:auto;min-height:100dvh;overflow-y:auto;}
  .v2-app .lgx{display:none;}
  .v2-app .ml-host{display:block;}
}
/* ── Intermedio 600–1359px: "reform" fluido (opción B). El canvas 1920 escala
   hasta 1360; por debajo el split se vuelve responsive (sin zoom, tipos clamp) y,
   si es angosto, apila marca arriba + formulario abajo. Extremos (≥1360 escalado
   y <600 mobile) intactos. ── */
@media (min-width:600px) and (max-width:1359px){
  .v2-app.lg-app{height:auto;min-height:100dvh;overflow-y:auto;}
  .v2-app .lgx{width:100%;height:100dvh;zoom:1;}
  .v2-app .lg-brand{flex:0 0 46%;padding:clamp(34px,4.2vw,72px);}
  .v2-app .lg-logo{width:clamp(190px,22vw,320px);}
  .v2-app .lg-h1{font-size:clamp(34px,4.6vw,66px);letter-spacing:-1.4px;}
  .v2-app .lg-sub{font-size:clamp(14px,1.4vw,18px);}
  .v2-app .lg-chips{gap:9px;margin-top:clamp(20px,3vw,42px);}
  .v2-app .lg-chip{padding:10px 15px;font-size:13px;}
  .v2-app .lg-foot{margin-top:clamp(24px,3vw,54px);}
  .v2-app .lg-fwrap{padding:clamp(28px,3.4vw,56px);}
  .v2-app .lg-form{max-width:420px;}
  .v2-app .lg-title{font-size:clamp(30px,3.2vw,44px);}
  .v2-app .lg-iso-dark,.v2-app .lg-iso-light{display:none;}
}
/* Tramo angosto del intermedio: apilar marca arriba + formulario abajo */
@media (min-width:600px) and (max-width:899px){
  .v2-app .lgx{flex-direction:column;height:auto;min-height:100dvh;}
  .v2-app .lg-brand{flex:0 0 auto;width:100%;padding:40px 44px 34px;}
  .v2-app .lg-hero{margin-top:22px;}
  .v2-app .lg-h1{font-size:clamp(34px,6vw,52px);}
  .v2-app .lg-foot{margin-top:26px;}
  .v2-app .lg-fwrap{flex:1;width:100%;padding:40px 44px 48px;}
  .v2-app .lg-form{max-width:460px;margin:0 auto;}
}
/* Viewport BAJO (phone landscape, ventanas de poca altura) en el intermedio:
   apilar compacto + scroll para que el formulario entre y no se corte. */
@media (min-width:600px) and (max-width:1359px) and (max-height:600px){
  .v2-app .lgx{flex-direction:column;height:auto;min-height:100dvh;}
  .v2-app .lg-brand{flex:0 0 auto;width:100%;padding:22px 40px;}
  .v2-app .lg-logo{width:188px;}
  .v2-app .lg-hero{margin-top:12px;}
  .v2-app .lg-h1{font-size:28px;letter-spacing:-.8px;}
  .v2-app .lg-chips{display:none;}
  .v2-app .lg-foot{display:none;}
  .v2-app .lg-fwrap{flex:1;width:100%;padding:26px 40px 40px;}
  .v2-app .lg-form{max-width:460px;margin:0 auto;}
  .v2-app .lg-title{font-size:30px;}
  .v2-app .lg-desc{margin-bottom:22px;}
}

/* ── Panel de marca (placa navy, misma receta que Cuenta Corriente) ── */
.v2-app .lg-brand{flex:0 0 52%;position:relative;overflow:hidden;color:#fff;display:flex;flex-direction:column;padding:76px 88px;background:linear-gradient(155deg,#0A6190 0%,var(--navy) 58%,#033B57 100%);}
.v2-app .lg-brand::before{content:"";position:absolute;right:-160px;top:-180px;width:720px;height:720px;pointer-events:none;background:radial-gradient(circle at 38% 38%,rgba(0,174,239,.40),transparent 62%);}
.v2-app .lg-brand::after{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--blue);}
.v2-app .lg-grid{position:absolute;inset:0;pointer-events:none;opacity:.06;background-image:linear-gradient(#fff 1px,transparent 1px),linear-gradient(90deg,#fff 1px,transparent 1px);background-size:64px 64px;}
/* Marca de agua única que cruza el borde: 25% sobre el navy (iso clara) +
   75% sobre el blanco (iso oscura). Ambas mismo tamaño/posición, ancladas al
   borde (right del brand / left del form) → alineadas como una sola iso. */
.v2-app .lg-iso-dark{position:absolute;right:-1059px;bottom:-120px;pointer-events:none;opacity:.05;z-index:0;}
.v2-app .lg-iso-dark img{display:block;width:1412px;height:auto;filter:brightness(0) invert(1);}
.v2-app .lg-logo{width:340px;height:auto;display:block;position:relative;z-index:1;}
.v2-app .lg-hero{margin-top:auto;position:relative;z-index:1;}
.v2-app .lg-eyebrow{font-family:'JetBrains Mono',monospace;font-size:13px;letter-spacing:3px;text-transform:uppercase;font-weight:600;color:rgba(255,255,255,.72);display:flex;align-items:center;gap:11px;}
.v2-app .lg-eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--blue);box-shadow:0 0 10px var(--blue);}
/* FocusOnNavigate (Routes.razor, Selector="h1") enfoca el <h1> tras cada navegación
   por a11y; el navegador dibuja su recuadro de foco nativo sobre el título. Se
   mantiene el foco (lector de pantalla) pero se oculta el marco visible. */
.v2-app h1:focus{outline:none;}
.v2-app .lg-h1{font-family:'Saira',sans-serif;font-size:74px;font-weight:700;letter-spacing:-2.2px;line-height:.98;margin:24px 0 0;}
.v2-app .lg-h1 .cy{color:var(--blue);}
/* Headline tipeado: cada carácter (.lg-ch) aparece con un fade rápido, escalonado
   por animation-delay (~25 car/seg = 40ms c/u). La posición ya está reservada
   (opacity no afecta el layout) → no hay reflow al ir apareciendo. */
.v2-app .lg-ch{opacity:0;animation:lg-char .12s ease forwards;}
@keyframes lg-char{to{opacity:1;}}
.v2-app .lg-sub{font-size:18px;color:rgba(255,255,255,.82);margin-top:24px;max-width:560px;line-height:1.55;}
.v2-app .lg-chips{display:flex;gap:12px;margin-top:42px;flex-wrap:wrap;}
.v2-app .lg-chip{display:inline-flex;align-items:center;gap:10px;padding:12px 19px;border-radius:999px;white-space:nowrap;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.22);font-size:14.5px;font-weight:500;backdrop-filter:blur(8px);transition:opacity .25s ease,transform .25s ease;}
.v2-app .lg-chip--out{opacity:0;transform:translateY(6px);}
.v2-app .lg-chip svg{width:17px;height:17px;color:var(--blue);}
.v2-app .lg-foot{position:relative;z-index:1;margin-top:54px;font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.8px;color:rgba(255,255,255,.55);display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.v2-app .lg-foot-dev{text-decoration:none;color:rgba(255,255,255,.55);transition:color .15s;}
.v2-app .lg-foot-dev:hover{color:rgba(255,255,255,.85);}

/* ── Panel de formulario ── */
.v2-app .lg-fwrap{flex:1;display:flex;align-items:center;justify-content:center;padding:64px;position:relative;min-width:0;overflow:hidden;}
.v2-app .lg-fwrap::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;background-image:linear-gradient(var(--navy) 1px,transparent 1px),linear-gradient(90deg,var(--navy) 1px,transparent 1px);background-size:64px 64px;opacity:.038;}
.v2-app .lg-iso-light{position:absolute;left:-353px;bottom:-120px;pointer-events:none;opacity:.02;z-index:0;}
.v2-app .lg-iso-light img{display:block;width:1412px;height:auto;filter:brightness(0);}
.v2-app .lg-form{width:100%;max-width:464px;position:relative;z-index:1;}
.v2-app .lg-keyb{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:2px;text-transform:uppercase;font-weight:600;color:var(--blue-d);}
.v2-app .lg-title{font-family:'Saira',sans-serif;font-size:46px;font-weight:700;letter-spacing:-1.2px;line-height:1;color:var(--ink);margin:12px 0 0;}
.v2-app .lg-desc{font-size:16px;color:var(--ink-2);margin:14px 0 32px;line-height:1.5;}
.v2-app .lg-error{display:flex;align-items:center;gap:10px;padding:12px 15px;border-radius:11px;background:#FBE9E7;border:1px solid #F0CFCB;color:var(--danger);font-size:13.5px;font-weight:500;margin-bottom:20px;}
.v2-app .lg-error svg{width:18px;height:18px;color:var(--danger);flex-shrink:0;}
.v2-app .lg-field{margin-bottom:20px;}
.v2-app .lg-lbl{display:flex;align-items:center;justify-content:space-between;font-size:13.5px;font-weight:600;color:var(--ink);margin-bottom:9px;}
.v2-app .lg-in{display:flex;align-items:center;gap:13px;height:56px;padding:0 17px;border:1px solid var(--line);border-radius:12px;background:var(--paper-2);transition:border-color .15s,box-shadow .15s;}
.v2-app .lg-in:focus-within{border-color:var(--blue);box-shadow:0 0 0 4px rgba(0,174,239,.13);}
.v2-app .lg-in > svg{width:19px;height:19px;color:var(--ink-3);flex-shrink:0;}
.v2-app .lg-in input{flex:1;min-width:0;border:none;outline:none;background:none;font-family:'Roboto',sans-serif;font-size:15.5px;color:var(--ink);}
.v2-app .lg-in input::placeholder{color:var(--ink-3);}
.v2-app .lg-eye{display:flex;align-items:center;cursor:pointer;color:var(--ink-3);flex-shrink:0;}
.v2-app .lg-eye:hover{color:var(--ink-2);}
.v2-app .lg-resend{margin:-4px 0 18px;}
.v2-app .lg-resend-btn{display:inline-flex;align-items:center;gap:8px;background:none;border:none;padding:0;cursor:pointer;font-family:'Roboto',sans-serif;font-size:13px;font-weight:600;color:var(--blue-d);}
.v2-app .lg-resend-btn:disabled{opacity:.65;cursor:default;}
.v2-app .lg-resend-msg{margin-top:8px;font-size:12.5px;line-height:1.45;}
.v2-app .lg-resend-msg--ok{color:var(--green);}
.v2-app .lg-resend-msg--err{color:var(--danger);}
.v2-app .lg-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 30px;}
.v2-app .lg-check{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--ink-2);cursor:pointer;user-select:none;}
.v2-app .lg-check-native{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;}
.v2-app .lg-box{width:19px;height:19px;border-radius:5px;border:1.5px solid var(--blue);background:var(--blue);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.v2-app .lg-box svg{width:12px;height:12px;color:#fff;}
.v2-app .lg-box.off{background:#fff;border-color:var(--line);}
.v2-app .lg-box.off svg{display:none;}
.v2-app .lg-link{font-size:14px;font-weight:600;color:var(--blue-d);cursor:pointer;text-decoration:none;}
.v2-app .lg-link:hover{text-decoration:underline;}
.v2-app .lg-btn{width:100%;height:58px;border-radius:12px;border:1px solid var(--navy);background:var(--navy);color:#fff;font-family:'Roboto',sans-serif;font-size:16px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:10px;cursor:pointer;transition:background .15s,transform .15s,box-shadow .15s;}
.v2-app .lg-btn svg{width:19px;height:19px;color:var(--blue);}
.v2-app .lg-btn:hover:not(:disabled){background:#05405f;transform:translateY(-1px);box-shadow:0 10px 26px -10px rgba(4,81,119,.5);}
.v2-app .lg-btn:disabled{opacity:.75;cursor:default;}
.v2-app .lg-div{display:flex;align-items:center;gap:14px;margin:34px 0 22px;color:var(--ink-3);font-family:'JetBrains Mono',monospace;font-size:11.5px;letter-spacing:1.6px;text-transform:uppercase;}
.v2-app .lg-div i{flex:1;height:1px;background:var(--line);}
.v2-app .lg-btn2{width:100%;min-height:58px;border-radius:12px;border:1px solid var(--line);background:var(--paper-2);display:flex;align-items:center;gap:16px;padding:0 22px;cursor:pointer;text-align:left;text-decoration:none;transition:background .15s,border-color .15s;}
.v2-app .lg-btn2:hover{background:var(--paper-3);border-color:#CBD6DE;}
.v2-app .lg-btn2 .ic2{width:40px;height:40px;border-radius:11px;background:var(--sky);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.v2-app .lg-btn2 .ic2 svg{width:19px;height:19px;color:var(--navy);}
.v2-app .lg-btn2 .t2{flex:1;min-width:0;}
.v2-app .lg-btn2 .t2 .a{display:block;font-size:14.5px;font-weight:600;color:var(--ink);}
.v2-app .lg-btn2 .t2 .b{display:block;font-size:12.5px;color:var(--ink-3);margin-top:2px;}
.v2-app .lg-btn2 .ch{display:flex;flex-shrink:0;}
.v2-app .lg-btn2 .ch svg{width:18px;height:18px;color:var(--ink-3);}
.v2-app .lg-legal{text-align:center;margin-top:30px;font-size:12.5px;color:var(--ink-3);line-height:1.6;}
.v2-app .lg-legal a{color:var(--blue-d);font-weight:600;cursor:pointer;text-decoration:none;}
.v2-app .lg-legal a:hover{text-decoration:underline;}

/* spinner */
.v2-app .lg-spin{width:17px;height:17px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:lg-spin .7s linear infinite;flex-shrink:0;}
.v2-app .lg-spin--dark{border-color:rgba(4,81,119,.25);border-top-color:var(--navy);}
.v2-app .lg-spin--navy{border-color:rgba(4,81,119,.3);border-top-color:var(--navy);}
.v2-app .lg-spin--light{border-color:rgba(255,255,255,.4);border-top-color:#fff;}
@keyframes lg-spin{to{transform:rotate(360deg);}}

/* ── 2FA challenge (desktop, sobre .lgx) ── */
.v2-app .tf-points{margin-top:34px;display:flex;flex-direction:column;gap:16px;max-width:460px;}
.v2-app .tf-point{display:flex;gap:13px;align-items:flex-start;}
.v2-app .tf-point-ic{width:28px;height:28px;border-radius:9px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--blue);}
.v2-app .tf-point div{display:flex;flex-direction:column;}
.v2-app .tf-point b{font-size:14px;font-weight:600;color:#fff;}
.v2-app .tf-point span{font-size:12.5px;color:rgba(255,255,255,.72);margin-top:2px;line-height:1.45;}
.v2-app .tf-hero{text-align:center;margin-bottom:26px;}
.v2-app .tf-hero-ic{width:76px;height:76px;border-radius:50%;background:var(--sky);display:flex;align-items:center;justify-content:center;margin:0 auto 18px;position:relative;color:var(--navy);}
.v2-app .tf-hero-badge{position:absolute;right:-2px;bottom:-2px;width:28px;height:28px;border-radius:50%;background:var(--navy);border:3px solid var(--paper-2);display:flex;align-items:center;justify-content:center;color:#fff;}
.v2-app .tf-h2{font-family:'Saira',sans-serif;font-size:30px;font-weight:700;letter-spacing:-.6px;color:var(--ink);margin:0;}
.v2-app .tf-h2--m{font-size:25px;}
.v2-app .tf-sub{font-size:14px;color:var(--ink-2);margin:10px auto 0;max-width:380px;line-height:1.5;}
.v2-app .tf-sub b{color:var(--ink);font-weight:600;}
.v2-app .tf-input{margin-bottom:16px;}
.v2-app .tf-recovery{width:100%;height:56px;border:1px solid var(--line);border-radius:12px;background:var(--paper-2);text-align:center;font-family:'JetBrains Mono',monospace;font-size:17px;letter-spacing:5px;color:var(--ink);outline:none;transition:border-color .15s,box-shadow .15s;}
.v2-app .tf-recovery:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(0,174,239,.13);}
.v2-app .tf-error{margin-top:12px;font-size:13px;font-weight:500;color:var(--danger);text-align:center;}
.v2-app .tf-help{margin-top:28px;}
.v2-app .tf-help-t{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--ink-3);margin-bottom:10px;}
.v2-app .tf-help-row{display:flex;align-items:center;gap:13px;width:100%;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:var(--paper-2);cursor:pointer;text-decoration:none;text-align:left;font-family:'Roboto',sans-serif;margin-bottom:10px;transition:background .15s,border-color .15s;}
.v2-app .tf-help-row:hover{background:var(--paper-3);border-color:#CBD6DE;}
.v2-app .tf-help-ic{width:34px;height:34px;border-radius:9px;background:var(--sky);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--navy);}
.v2-app .tf-help-tx{flex:1;min-width:0;}
.v2-app .tf-help-tx .a{display:block;font-size:13.5px;font-weight:600;color:var(--ink);}
.v2-app .tf-help-tx .b{display:block;font-size:12px;color:var(--ink-3);margin-top:2px;}
.v2-app .tf-help-row > svg{color:var(--ink-3);flex-shrink:0;}
.v2-app .tf-foot{text-align:center;margin-top:22px;font-size:13px;color:var(--ink-2);}
.v2-app .tf-foot button{background:none;border:none;padding:0;cursor:pointer;font-family:'Roboto',sans-serif;font-size:13px;font-weight:600;color:var(--blue-d);}
.v2-app .tf-foot button:hover{text-decoration:underline;}

/* OTP (OtpCells, estilado global en twofactor.css) → foco cyan v2 */
.v2-app .otp-cells__cell--filled{border-color:var(--cyan);background:#fff;}
.v2-app .otp-cells__cell:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,174,239,.18);}

/* ── Mobile — full-bleed navy ── */
.v2-app .ml{position:relative;min-height:100dvh;overflow:hidden;color:#fff;background:linear-gradient(150deg,#0A6190 0%,var(--navy) 55%,#033B57 100%);}
.v2-app .ml-glow{position:absolute;right:-120px;top:-130px;width:440px;height:440px;pointer-events:none;background:radial-gradient(circle at 40% 38%,rgba(0,174,239,.42),transparent 60%);}
.v2-app .ml-glow.b{right:auto;left:-150px;top:auto;bottom:-170px;width:420px;height:420px;background:radial-gradient(circle at 50% 50%,rgba(0,174,239,.20),transparent 62%);}
.v2-app .ml-grid{position:absolute;inset:0;pointer-events:none;opacity:.07;background-image:linear-gradient(rgba(255,255,255,.9) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.9) 1px,transparent 1px);background-size:46px 46px;}
.v2-app .ml-inner{position:relative;z-index:1;min-height:100dvh;display:flex;flex-direction:column;padding:56px 26px 30px;}
.v2-app .ml-back{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;background:none;border:none;padding:0;margin-bottom:18px;cursor:pointer;color:rgba(255,255,255,.85);font-family:'Roboto',sans-serif;font-size:14px;font-weight:500;}
.v2-app .ml-logo{width:182px;height:auto;display:block;}
.v2-app .ml-pill{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;margin-top:24px;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.26);font-family:'JetBrains Mono',monospace;font-size:10.5px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:#fff;}
.v2-app .ml-pill .dot{width:7px;height:7px;border-radius:50%;background:var(--blue);box-shadow:0 0 8px var(--blue);}
.v2-app .ml-h1{font-family:'Saira',sans-serif;font-size:31px;font-weight:700;letter-spacing:-1px;line-height:1.08;margin:20px 0 0;}
.v2-app .ml-h1 .cy{color:#6FD3F5;}
.v2-app .ml-form{margin-top:30px;}
.v2-app .ml-error{padding:11px 14px;border-radius:12px;background:rgba(255,255,255,.14);border:1px solid rgba(255,120,110,.55);color:#FFD9D4;font-size:13px;font-weight:500;margin-bottom:13px;}
.v2-app .ml-in{display:flex;align-items:center;gap:12px;height:54px;padding:0 16px;border-radius:13px;margin-bottom:13px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.26);backdrop-filter:blur(12px);transition:border-color .15s,box-shadow .15s,background .15s;}
.v2-app .ml-in:focus-within{border-color:rgba(255,255,255,.6);background:rgba(255,255,255,.18);box-shadow:0 0 0 3px rgba(255,255,255,.10);}
.v2-app .ml-in > svg{width:18px;height:18px;color:rgba(255,255,255,.7);flex-shrink:0;}
.v2-app .ml-in input{flex:1;min-width:0;border:none;outline:none;background:none;font-family:'Roboto',sans-serif;font-size:14.5px;color:#fff;}
.v2-app .ml-in input::placeholder{color:rgba(255,255,255,.62);}
.v2-app .ml-eye{display:flex;cursor:pointer;color:rgba(255,255,255,.7);flex-shrink:0;}
.v2-app .ml-resend{display:flex;align-items:center;gap:8px;width:100%;justify-content:center;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.26);border-radius:12px;padding:11px 14px;margin-bottom:6px;cursor:pointer;color:#fff;font-family:'Roboto',sans-serif;font-size:13px;font-weight:600;}
.v2-app .ml-resend:disabled{opacity:.7;cursor:default;}
.v2-app .ml-resend svg{color:rgba(255,255,255,.85);}
.v2-app .ml-resend-msg{font-size:12px;line-height:1.45;margin-bottom:10px;}
.v2-app .ml-resend-msg--ok{color:#B7F0CE;}
.v2-app .ml-resend-msg--err{color:#FFD9D4;}
.v2-app .ml-forgot{text-align:right;margin:4px 2px 22px;}
.v2-app .ml-forgot a{font-size:12.5px;font-weight:600;color:rgba(255,255,255,.9);text-decoration:none;}
.v2-app .ml-btn{width:100%;height:56px;border-radius:14px;border:none;background:#fff;color:var(--navy);font-family:'Roboto',sans-serif;font-size:15.5px;font-weight:700;letter-spacing:.1px;display:flex;align-items:center;justify-content:center;gap:9px;cursor:pointer;box-shadow:0 10px 26px -10px rgba(0,0,0,.4);}
.v2-app .ml-btn svg{width:18px;height:18px;color:var(--navy);}
.v2-app .ml-btn:disabled{opacity:.8;cursor:default;}
.v2-app .ml-div{display:flex;align-items:center;gap:13px;margin-top:auto;padding-top:24px;color:rgba(255,255,255,.5);font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;font-weight:700;}
.v2-app .ml-div i{flex:1;height:1px;background:rgba(255,255,255,.2);}
.v2-app .ml-btn2{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding:0 20px;height:54px;border-radius:13px;border:1px solid rgba(255,255,255,.26);background:rgba(255,255,255,.10);backdrop-filter:blur(10px);cursor:pointer;text-decoration:none;}
.v2-app .ml-btn2 .a{font-size:13.5px;font-weight:700;color:#fff;}
.v2-app .ml-btn2 .ch{display:flex;flex-shrink:0;}
.v2-app .ml-btn2 .ch svg{width:17px;height:17px;color:rgba(255,255,255,.8);}
.v2-app .ml-copy{text-align:center;margin-top:18px;font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.4px;color:rgba(255,255,255,.5);}
.v2-app .ml-copy a{color:rgba(255,255,255,.5);text-decoration:none;}
.v2-app .ml-copy a:hover{color:rgba(255,255,255,.85);}

/* 2FA mobile (fondo navy → texto claro) */
.v2-app .ml-host--tfa .tf-hero-ic{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);color:#fff;}
.v2-app .ml-host--tfa .tf-hero-badge{background:var(--blue);border-color:#033B57;color:#04293b;}
.v2-app .ml-host--tfa .tf-h2{color:#fff;}
.v2-app .ml-host--tfa .tf-sub{color:rgba(255,255,255,.82);}
.v2-app .ml-host--tfa .tf-sub b{color:#fff;}
.v2-app .ml-host--tfa .tf-error{color:#FFD9D4;}
.v2-app .ml-host--tfa .tf-help-t{color:rgba(255,255,255,.6);}
.v2-app .ml-host--tfa .tf-help-row{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.26);}
.v2-app .ml-host--tfa .tf-help-row:hover{background:rgba(255,255,255,.16);}
.v2-app .ml-host--tfa .tf-help-ic{background:rgba(255,255,255,.16);color:#fff;}
.v2-app .ml-host--tfa .tf-help-tx .a{color:#fff;}
.v2-app .ml-host--tfa .tf-help-tx .b{color:rgba(255,255,255,.65);}
.v2-app .ml-host--tfa .tf-help-row > svg{color:rgba(255,255,255,.7);}
.v2-app .ml-host--tfa .tf-foot{color:rgba(255,255,255,.75);}
.v2-app .ml-host--tfa .tf-foot button{color:#fff;}
.v2-app .ml-host--tfa .tf-recovery{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.26);color:#fff;}
.v2-app .ml-host--tfa .tf-input{margin-top:8px;}

/* ═══════════════════════════════════════════════════════════════════
   Registro · Alta comercial (v2) — fuente: Claude Design signup-page.js
   (desktop .sgx/.sg-*) + mobile .ms/.ms-*. Mismo manual que el login: canvas
   1920×1080 escalado ≥1360; 600–1359 apila fluido; <600 mobile.
   ═══════════════════════════════════════════════════════════════════ */
.v2-app .sgx{width:var(--v2-w,1920px);height:1080px;zoom:var(--v2-zoom,1);display:flex;background:var(--paper-2);overflow:hidden;position:relative;}
.v2-app .ms{display:none;}

/* ── Panel de marca (placa navy) ── */
.v2-app .sg-brand{flex:0 0 52%;position:relative;overflow:hidden;color:#fff;display:flex;flex-direction:column;padding:76px 88px;background:linear-gradient(155deg,#0A6190 0%,var(--navy) 58%,#033B57 100%);}
.v2-app .sg-brand::before{content:"";position:absolute;right:-160px;top:-180px;width:660px;height:660px;pointer-events:none;background:radial-gradient(circle at 38% 38%,rgba(0,174,239,.40),transparent 62%);}
.v2-app .sg-brand::after{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--blue);}
.v2-app .sg-grid{position:absolute;inset:0;pointer-events:none;opacity:.06;background-image:linear-gradient(#fff 1px,transparent 1px),linear-gradient(90deg,#fff 1px,transparent 1px);background-size:64px 64px;}
/* Marca de agua: idéntica al login (iso única cruzando el borde, 25% navy /
   75% blanco). Navy en el brand (clip), blanca/oscura en el form (clip). */
.v2-app .sg-iso{position:absolute;right:-1059px;bottom:-120px;pointer-events:none;opacity:.05;z-index:0;}
.v2-app .sg-iso img{display:block;width:1412px;height:auto;filter:brightness(0) invert(1);}
.v2-app .sg-logo-link{position:relative;z-index:1;display:inline-block;}
.v2-app .sg-logo{width:340px;height:auto;display:block;}
.v2-app .sg-hero{margin-top:48px;position:relative;z-index:1;}
.v2-app .sg-eyebrow{font-family:'JetBrains Mono',monospace;font-size:12.5px;letter-spacing:3px;text-transform:uppercase;font-weight:600;color:rgba(255,255,255,.72);display:flex;align-items:center;gap:11px;}
.v2-app .sg-eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--blue);box-shadow:0 0 10px var(--blue);}
.v2-app .sg-h1{font-family:'Saira',sans-serif;font-size:56px;font-weight:700;letter-spacing:-1.6px;line-height:1;margin:22px 0 0;}
.v2-app .sg-h1 .cy{color:var(--blue);}
.v2-app .sg-sub{font-size:17px;color:rgba(255,255,255,.82);margin-top:20px;max-width:480px;line-height:1.55;}
.v2-app .sg-steps{margin-top:auto;position:relative;z-index:1;padding:26px 28px;border-radius:18px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(10px);}
.v2-app .sg-steps-h{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:2px;text-transform:uppercase;font-weight:700;color:rgba(255,255,255,.85);margin-bottom:6px;}
.v2-app .sg-step{display:flex;align-items:center;gap:15px;padding:13px 0;border-bottom:1px solid rgba(255,255,255,.12);}
.v2-app .sg-step:last-child{border-bottom:none;}
.v2-app .sg-step .n{flex-shrink:0;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);display:flex;align-items:center;justify-content:center;font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:700;}
.v2-app .sg-step.done .n{background:var(--blue);border-color:var(--blue);color:#04293b;}
.v2-app .sg-step .t{flex:1;font-size:15px;font-weight:500;color:rgba(255,255,255,.92);}
.v2-app .sg-foot{position:relative;z-index:1;margin-top:30px;padding-top:22px;border-top:1px solid rgba(255,255,255,.15);display:flex;align-items:center;justify-content:space-between;font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.6px;color:rgba(255,255,255,.55);}
.v2-app .sg-foot a{color:var(--blue);font-weight:600;text-decoration:none;font-family:'Roboto',sans-serif;letter-spacing:0;}
.v2-app .sg-foot a:hover{text-decoration:underline;}
.v2-app .sg-foot .dev{color:rgba(255,255,255,.55);font-weight:600;font-family:'JetBrains Mono',monospace;letter-spacing:.6px;}
.v2-app .sg-foot .dev:hover{color:rgba(255,255,255,.85);text-decoration:none;}

/* ── Panel de formulario (scrolleable) ── */
.v2-app .sg-fwrap{flex:1;overflow:hidden;position:relative;min-width:0;}
.v2-app .sg-iso-light{position:absolute;left:-353px;bottom:-120px;pointer-events:none;opacity:.02;z-index:0;}
.v2-app .sg-iso-light img{display:block;width:1412px;height:auto;filter:brightness(0);}
.v2-app .sg-fwrap::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;background-image:linear-gradient(var(--navy) 1px,transparent 1px),linear-gradient(90deg,var(--navy) 1px,transparent 1px);background-size:64px 64px;opacity:.035;}
.v2-app .sg-scroll{position:relative;z-index:1;height:100%;overflow-y:auto;}
.v2-app .sg-scroll::-webkit-scrollbar{width:9px;}
.v2-app .sg-scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px;border:2px solid var(--paper-2);}
.v2-app .sg-form{max-width:680px;margin:0 auto;padding:62px 72px 72px;position:relative;z-index:1;}
.v2-app .sg-keyb{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:2px;text-transform:uppercase;font-weight:600;color:var(--blue-d);}
.v2-app .sg-title{font-family:'Saira',sans-serif;font-size:42px;font-weight:700;letter-spacing:-1.1px;line-height:1;color:var(--ink);margin:11px 0 0;}
.v2-app .sg-desc{font-size:15.5px;color:var(--ink-2);margin:13px 0 26px;line-height:1.5;}
.v2-app .sg-notice{display:flex;gap:15px;padding:18px 20px;border-radius:14px;background:#FBF4E2;border:1px solid #F0DCAE;margin-bottom:30px;}
.v2-app .sg-notice .ni{flex-shrink:0;width:38px;height:38px;border-radius:11px;background:var(--amber);color:#fff;display:flex;align-items:center;justify-content:center;}
.v2-app .sg-notice .nt{font-size:13.5px;color:#6B4A0D;line-height:1.55;}
.v2-app .sg-notice .nt b{display:block;font-size:14.5px;font-weight:700;color:#5A3D0A;margin-bottom:3px;}
.v2-app .sg-notice .nt strong{font-weight:700;color:#5A3D0A;}
.v2-app .sg-alert{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border-radius:12px;background:#FBE9E7;border:1px solid #F0CFCB;color:var(--danger);font-size:13px;line-height:1.5;margin-bottom:24px;}
.v2-app .sg-alert a{color:var(--danger);font-weight:700;}
.v2-app .sg-block{padding:22px 24px;border-radius:16px;border:1px solid rgba(0,174,239,.35);background:linear-gradient(135deg,rgba(0,174,239,.05),rgba(4,81,119,.04));margin-bottom:30px;}
.v2-app .sg-block-h{display:flex;align-items:center;gap:11px;margin-bottom:5px;}
.v2-app .sg-block-h .bn{width:26px;height:26px;border-radius:8px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:700;flex-shrink:0;}
.v2-app .sg-block-h .bt{font-family:'Saira',sans-serif;font-size:18px;font-weight:700;color:var(--navy);letter-spacing:-.2px;}
.v2-app .sg-block-d{font-size:13px;color:var(--ink-2);margin:0 0 16px 37px;line-height:1.5;}
.v2-app .sg-group{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:1.8px;text-transform:uppercase;font-weight:700;color:var(--ink-3);margin:8px 0 14px;display:flex;align-items:center;gap:11px;}
.v2-app .sg-group::after{content:"";flex:1;height:1px;background:var(--line);}
.v2-app .sg-field{margin-bottom:18px;}
.v2-app .sg-grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.v2-app .sg-grid-pref{display:grid;grid-template-columns:1fr 2fr;gap:16px;}
.v2-app .sg-lbl{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;color:var(--ink);margin-bottom:9px;}
.v2-app .sg-lbl .req{font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.6px;text-transform:uppercase;font-weight:700;padding:2px 7px;border-radius:5px;background:#FBE9E7;color:#BC3B2C;}
.v2-app .sg-in{display:flex;align-items:center;gap:13px;height:52px;padding:0 16px;border:1px solid var(--line);border-radius:12px;background:var(--paper-2);transition:border-color .15s,box-shadow .15s;overflow:hidden;}
.v2-app .sg-in.big{height:60px;border-color:var(--blue);box-shadow:0 0 0 4px rgba(0,174,239,.12);}
.v2-app .sg-in:focus-within{border-color:var(--blue);box-shadow:0 0 0 4px rgba(0,174,239,.13);}
.v2-app .sg-in.err{border-color:var(--danger);box-shadow:0 0 0 4px rgba(188,59,44,.10);}
.v2-app .sg-in > svg{width:19px;height:19px;color:var(--ink-3);flex-shrink:0;}
.v2-app .sg-in.big > svg{color:var(--blue-d);}
.v2-app .sg-in input{flex:1;min-width:0;border:none;outline:none;background:none;font-family:'Roboto',sans-serif;font-size:15px;color:var(--ink);}
.v2-app .sg-in.big input{font-size:18px;font-weight:600;letter-spacing:.3px;font-family:'JetBrains Mono',monospace;}
.v2-app .sg-in input::placeholder{color:var(--ink-3);font-family:'Roboto',sans-serif;font-weight:400;letter-spacing:0;}
.v2-app .sg-hint{font-size:12px;color:var(--ink-3);margin-top:7px;line-height:1.45;}
.v2-app .sg-err{font-size:12px;color:var(--danger);font-weight:500;margin-top:7px;}
.v2-app .sg-terms{display:flex;align-items:flex-start;gap:12px;margin:24px 0 6px;font-size:13.5px;color:var(--ink-2);line-height:1.55;cursor:pointer;user-select:none;}
.v2-app .sg-check-native{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;}
.v2-app .sg-box{flex-shrink:0;margin-top:1px;width:20px;height:20px;border-radius:6px;border:1.5px solid var(--blue);background:var(--blue);display:flex;align-items:center;justify-content:center;}
.v2-app .sg-box svg{width:12px;height:12px;color:#fff;}
.v2-app .sg-box.off{background:#fff;border-color:var(--line);}
.v2-app .sg-box.off svg{display:none;}
.v2-app .sg-terms a{color:var(--blue-d);font-weight:600;}
.v2-app .sg-error-banner{display:flex;align-items:center;gap:10px;padding:12px 15px;border-radius:11px;background:#FBE9E7;border:1px solid #F0CFCB;color:var(--danger);font-size:13.5px;font-weight:500;margin-top:18px;}
.v2-app .sg-error-banner svg{color:var(--danger);flex-shrink:0;}
.v2-app .sg-cta{display:flex;gap:14px;align-items:center;margin-top:26px;}
.v2-app .sg-btn{flex:1;height:58px;border-radius:12px;border:1px solid var(--navy);background:var(--navy);color:#fff;font-family:'Roboto',sans-serif;font-size:16px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:10px;cursor:pointer;transition:background .15s,transform .15s,box-shadow .15s;}
.v2-app .sg-btn svg{width:19px;height:19px;color:var(--blue);}
.v2-app .sg-btn:hover:not(:disabled){background:#05405f;transform:translateY(-1px);box-shadow:0 10px 26px -10px rgba(4,81,119,.5);}
.v2-app .sg-btn:disabled{opacity:.6;cursor:default;}
.v2-app .sg-btn2{height:58px;padding:0 26px;border-radius:12px;border:1px solid var(--line);background:var(--paper-2);font-family:'Roboto',sans-serif;font-size:15px;font-weight:600;color:var(--ink-2);cursor:pointer;text-decoration:none;display:flex;align-items:center;transition:background .15s;}
.v2-app .sg-btn2:hover{background:var(--paper-3);}
.v2-app .sg-end{text-align:center;font-size:12.5px;color:var(--ink-3);margin-top:16px;line-height:1.5;}
.v2-app .sg-end strong{color:var(--ink-2);font-weight:600;}

/* ── Mobile (.ms) ── */
.v2-app .ms{position:relative;min-height:100dvh;background:var(--paper);}
.v2-app .ms-hd{position:relative;overflow:hidden;color:#fff;padding:54px 24px 26px;background:linear-gradient(150deg,#0A6190 0%,var(--navy) 58%,#033B57 100%);}
.v2-app .ms-hd::before{content:"";position:absolute;right:-90px;top:-100px;width:280px;height:280px;pointer-events:none;background:radial-gradient(circle at 40% 40%,rgba(0,174,239,.4),transparent 62%);}
.v2-app .ms-grid{position:absolute;inset:0;pointer-events:none;opacity:.07;background-image:linear-gradient(rgba(255,255,255,.9) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.9) 1px,transparent 1px);background-size:44px 44px;}
.v2-app .ms-back{display:inline-flex;align-items:center;gap:9px;position:relative;z-index:1;font-size:13px;font-weight:600;color:rgba(255,255,255,.9);margin-bottom:18px;cursor:pointer;text-decoration:none;}
.v2-app .ms-pill{display:inline-flex;align-items:center;gap:8px;position:relative;z-index:1;padding:7px 13px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.26);font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;}
.v2-app .ms-pill .dot{width:6px;height:6px;border-radius:50%;background:var(--blue);box-shadow:0 0 8px var(--blue);}
.v2-app .ms-h1{font-family:'Saira',sans-serif;font-size:30px;font-weight:700;letter-spacing:-.9px;line-height:1.05;margin:16px 0 0;position:relative;z-index:1;}
.v2-app .ms-sub{font-size:13.5px;color:rgba(255,255,255,.84);margin-top:9px;line-height:1.5;position:relative;z-index:1;}
.v2-app .ms-body{padding:20px 18px 40px;}
.v2-app .ms-notice{display:flex;gap:12px;padding:14px 16px;border-radius:13px;background:#FBF4E2;border:1px solid #F0DCAE;margin-bottom:22px;}
.v2-app .ms-notice .ni{flex-shrink:0;width:30px;height:30px;border-radius:9px;background:var(--amber);color:#fff;display:flex;align-items:center;justify-content:center;}
.v2-app .ms-notice .nt{font-size:12px;color:#6B4A0D;line-height:1.5;}
.v2-app .ms-notice .nt b{display:block;font-size:13px;font-weight:700;color:#5A3D0A;margin-bottom:2px;}
.v2-app .ms-block{padding:16px 17px;border-radius:14px;border:1px solid rgba(0,174,239,.35);background:linear-gradient(135deg,rgba(0,174,239,.05),rgba(4,81,119,.04));margin-bottom:22px;}
.v2-app .ms-block-h{display:flex;align-items:center;gap:9px;margin-bottom:4px;}
.v2-app .ms-block-h .bn{width:22px;height:22px;border-radius:7px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;flex-shrink:0;}
.v2-app .ms-block-h .bt{font-family:'Saira',sans-serif;font-size:15px;font-weight:700;color:var(--navy);}
.v2-app .ms-block-d{font-size:11.5px;color:var(--ink-2);margin:0 0 12px 31px;line-height:1.45;}
.v2-app .ms-group{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:1.6px;text-transform:uppercase;font-weight:700;color:var(--ink-3);margin:6px 0 12px;display:flex;align-items:center;gap:10px;}
.v2-app .ms-group::after{content:"";flex:1;height:1px;background:var(--line);}
.v2-app .ms-field{margin-bottom:14px;}
.v2-app .ms-grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.v2-app .ms-grid-pref{display:grid;grid-template-columns:1fr 1.7fr;gap:12px;}
.v2-app .ms-lbl{font-size:12.5px;font-weight:600;color:var(--ink);margin-bottom:7px;display:flex;align-items:center;gap:7px;}
.v2-app .ms-lbl .req{font-family:'JetBrains Mono',monospace;font-size:8.5px;letter-spacing:.5px;text-transform:uppercase;font-weight:700;padding:2px 6px;border-radius:4px;background:#FBE9E7;color:#BC3B2C;}
.v2-app .ms-in{display:flex;align-items:center;gap:11px;height:48px;padding:0 14px;border:1px solid var(--line);border-radius:11px;background:#fff;overflow:hidden;}
.v2-app .ms-in.big{height:54px;border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,174,239,.12);}
.v2-app .ms-in:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,174,239,.13);}
.v2-app .ms-in.err{border-color:var(--danger);box-shadow:0 0 0 3px rgba(188,59,44,.10);}
.v2-app .ms-in > svg{width:17px;height:17px;color:var(--ink-3);flex-shrink:0;}
.v2-app .ms-in.big > svg{color:var(--blue-d);}
.v2-app .ms-in input{flex:1;min-width:0;border:none;outline:none;background:none;font-family:'Roboto',sans-serif;font-size:14px;color:var(--ink);}
.v2-app .ms-in.big input{font-size:16px;font-weight:600;font-family:'JetBrains Mono',monospace;letter-spacing:.3px;}
.v2-app .ms-in input::placeholder{color:var(--ink-3);font-family:'Roboto',sans-serif;font-weight:400;letter-spacing:0;}
.v2-app .ms-hint{font-size:11px;color:var(--ink-3);margin-top:6px;line-height:1.4;}
.v2-app .ms-err{font-size:11px;color:var(--danger);font-weight:500;margin-top:6px;}
.v2-app .ms-terms{display:flex;align-items:flex-start;gap:10px;margin:18px 0 6px;font-size:12.5px;color:var(--ink-2);line-height:1.5;cursor:pointer;}
.v2-app .ms-box{flex-shrink:0;margin-top:1px;width:18px;height:18px;border-radius:5px;border:1.5px solid var(--blue);background:var(--blue);display:flex;align-items:center;justify-content:center;}
.v2-app .ms-box svg{width:11px;height:11px;color:#fff;}
.v2-app .ms-box.off{background:#fff;border-color:var(--line);}
.v2-app .ms-box.off svg{display:none;}
.v2-app .ms-terms a{color:var(--blue-d);font-weight:600;}
.v2-app .ms-btn{width:100%;height:54px;border-radius:13px;border:1px solid var(--navy);background:var(--navy);color:#fff;font-family:'Roboto',sans-serif;font-size:15px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:9px;cursor:pointer;margin-top:20px;}
.v2-app .ms-btn svg{width:18px;height:18px;color:var(--blue);}
.v2-app .ms-btn:disabled{opacity:.6;cursor:default;}
.v2-app .ms-end{text-align:center;font-size:11.5px;color:var(--ink-3);margin-top:14px;line-height:1.5;}
.v2-app .ms-end strong{color:var(--ink-2);font-weight:600;}
.v2-app .ms-login{text-align:center;margin-top:20px;font-size:13px;color:var(--ink-2);}
.v2-app .ms-login a{color:var(--blue-d);font-weight:700;text-decoration:none;}
.v2-app .ms-credit{text-align:center;margin-top:16px;font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.4px;color:var(--ink-3);}
.v2-app .ms-credit a{color:var(--ink-3);text-decoration:none;}

/* ── Responsive registro ── */
@media (max-width:599px){
  .v2-app .sgx{display:none;}
  .v2-app .ms{display:block;}
}
/* Intermedio 600–1359: apila (marca compacta arriba + form abajo, scroll) */
@media (min-width:600px) and (max-width:1359px){
  .v2-app .sgx{flex-direction:column;width:100%;height:auto;min-height:100dvh;zoom:1;overflow:visible;}
  .v2-app .sg-brand{width:100%;flex:0 0 auto;padding:clamp(34px,4.5vw,60px) clamp(34px,5vw,72px);}
  .v2-app .sg-hero{margin-top:26px;}
  .v2-app .sg-h1{font-size:clamp(34px,4.6vw,52px);}
  .v2-app .sg-steps{margin-top:30px;}
  .v2-app .sg-foot{margin-top:26px;}
  .v2-app .sg-fwrap{overflow:visible;}
  .v2-app .sg-scroll{height:auto;overflow:visible;}
  .v2-app .sg-form{max-width:680px;padding:clamp(34px,4.5vw,56px) clamp(28px,5vw,64px) 64px;}
  .v2-app .sg-iso,.v2-app .sg-iso-light{display:none;}
}

/* ═══════════════════════════════════════════════════════════════════
   Recuperar contraseña (v2) — flujo de 3 pasos (email · sent · reset).
   Reusa el shell de Registro (.sgx / .sg-brand / .sg-fwrap / .sg-scroll
   desktop, .ms / .ms-hd / .ms-body mobile) y agrega contenido propio fg-*.
   Derivado del login/registro nuevos (sin handoff dedicado).
   ═══════════════════════════════════════════════════════════════════ */
/* Brand: stepper "Cómo recuperás el acceso" (reusa .sg-steps/.sg-step) */
.v2-app .sg-step.active .n{background:#fff;border-color:#fff;color:var(--navy);box-shadow:0 0 0 4px rgba(255,255,255,.18);}
.v2-app .sg-step.pending{opacity:.5;}
.v2-app .sg-step .eta{flex-shrink:0;font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:rgba(255,255,255,.62);}
.v2-app .fg-tip{position:relative;z-index:1;margin-top:18px;padding:13px 16px;border-radius:13px;background:rgba(0,174,239,.10);border:1px solid rgba(0,174,239,.30);font-size:12.5px;line-height:1.5;color:rgba(255,255,255,.88);}
.v2-app .fg-tip-h{display:flex;align-items:center;gap:8px;margin-bottom:5px;font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:1.4px;text-transform:uppercase;font-weight:700;color:var(--blue);}
.v2-app .fg-tip-h svg{width:13px;height:13px;}
.v2-app .fg-tip strong{color:#fff;font-weight:700;}

/* Mobile: barra de progreso 3 segmentos en el header navy */
.v2-app .fg-prog{display:flex;gap:6px;margin-top:16px;position:relative;z-index:1;}
.v2-app .fg-prog-seg{flex:1;height:4px;border-radius:2px;background:rgba(255,255,255,.25);}
.v2-app .fg-prog-seg.on{background:var(--blue);}

/* Wrapper del form (desktop, dentro de .sg-scroll). Más angosto que registro. */
.v2-app .fg-form{max-width:528px;margin:0 auto;padding:58px 60px 72px;position:relative;z-index:1;}

/* Hero (paso 1): disco + título + bajada (alineado izquierda) */
.v2-app .fg-hero{margin-bottom:26px;}
.v2-app .fg-hero-ic{width:62px;height:62px;border-radius:50%;background:var(--sky);border:1px solid rgba(0,174,239,.3);display:flex;align-items:center;justify-content:center;color:var(--navy);margin-bottom:16px;}
.v2-app .fg-hero-ic svg{width:26px;height:26px;}
.v2-app .fg-h2{font-family:'Saira',sans-serif;font-size:30px;font-weight:700;letter-spacing:-.6px;line-height:1.05;color:var(--ink);margin:0;}
.v2-app .fg-h2.sm{font-size:25px;}
.v2-app .fg-p{font-size:15px;color:var(--ink-2);margin-top:10px;line-height:1.55;}
.v2-app .fg-acct{font-size:12.5px;color:var(--ink-3);margin-top:9px;}
.v2-app .fg-acct strong{color:var(--ink);font-weight:600;}

/* Field password mono (reusa .lg-field/.lg-in/.lg-eye) */
.v2-app .lg-in.fg-pw input{font-family:'JetBrains Mono',monospace;letter-spacing:2px;}
/* Estado de error del field login (no existe en la sección login) */
.v2-app .lg-in.err{border-color:var(--danger);box-shadow:0 0 0 4px rgba(188,59,44,.10);}
/* lg-btn usado como enlace (<a>) en pantallas de flujo: sin subrayado */
.v2-app a.lg-btn{text-decoration:none;}

/* Nota de seguridad (paso 1) */
.v2-app .fg-note{margin-top:20px;padding:14px 16px;border-radius:12px;background:var(--paper-3);border:1px solid var(--line);font-size:12.5px;color:var(--ink-2);line-height:1.55;}
.v2-app .fg-note strong{color:var(--ink);font-weight:600;}
.v2-app .fg-note .hl{color:var(--blue-d);font-weight:700;}

/* Línea "volver al login" (paso 1) */
.v2-app .fg-backline{text-align:center;margin-top:22px;font-size:13.5px;color:var(--ink-2);}
.v2-app .fg-backline a{color:var(--blue-d);font-weight:700;text-decoration:none;}
.v2-app .fg-backline a:hover{text-decoration:underline;}

/* Hero centrado con badge verde (paso 2) */
.v2-app .fg-sent-hero{position:relative;width:104px;height:104px;margin:0 auto 18px;}
.v2-app .fg-sent-halo{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle,rgba(0,174,239,.22) 0%,transparent 70%);}
.v2-app .fg-sent-disc{position:absolute;inset:8px;border-radius:50%;background:var(--sky);border:1px solid rgba(0,174,239,.35);display:flex;align-items:center;justify-content:center;color:var(--navy);}
.v2-app .fg-sent-disc svg{width:46px;height:46px;}
.v2-app .fg-sent-badge{position:absolute;top:-2px;right:2px;width:30px;height:30px;border-radius:50%;background:var(--green);border:3px solid var(--paper-2);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 4px 12px rgba(31,122,63,.32);}
.v2-app .fg-sent-badge svg{width:15px;height:15px;}
.v2-app .fg-center{text-align:center;margin-bottom:24px;}
.v2-app .fg-pill{display:inline-block;margin-top:11px;max-width:100%;padding:9px 16px;border-radius:10px;background:#fff;border:1.5px dashed var(--blue);font-family:'JetBrains Mono',monospace;font-size:14px;font-weight:700;color:var(--navy);word-break:break-all;}

/* Card de pasos (paso 2: próximos pasos) */
.v2-app .fg-card{padding:18px 20px;border-radius:14px;background:#fff;border:1px solid var(--line);box-shadow:0 1px 2px rgba(4,81,119,.06);margin-bottom:18px;}
.v2-app .fg-card-h{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:1.6px;text-transform:uppercase;font-weight:700;color:var(--ink-3);margin-bottom:12px;}
.v2-app .fg-srow{display:flex;gap:13px;padding:9px 0;border-bottom:1px dashed var(--line);}
.v2-app .fg-srow:last-child{border-bottom:none;}
.v2-app .fg-srow .n{flex-shrink:0;width:26px;height:26px;border-radius:50%;background:var(--sky);border:1px solid rgba(0,174,239,.3);color:var(--blue-d);font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;}
.v2-app .fg-srow .ti{font-size:13.5px;font-weight:600;color:var(--ink);}
.v2-app .fg-srow .su{font-size:12px;color:var(--ink-3);margin-top:2px;line-height:1.4;}

/* Banner amber (paso 2: no te llega / paso 3: strip de seguridad) */
.v2-app .fg-amber{display:flex;align-items:flex-start;gap:12px;padding:13px 15px;border-radius:12px;background:#FBF4E2;border:1px solid #F0DCAE;margin-bottom:18px;}
.v2-app .fg-amber-disc{flex-shrink:0;width:24px;height:24px;border-radius:50%;background:var(--amber);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;}
.v2-app .fg-amber-t{font-size:12.5px;font-weight:700;color:#6B4A0D;}
.v2-app .fg-amber-b{font-size:11.5px;color:#6B4A0D;line-height:1.5;margin-top:2px;}
.v2-app .fg-amber-b strong{font-weight:700;}
.v2-app .fg-amber-strip{margin-top:14px;padding:11px 15px;background:#FBF4E2;border:1px solid #F0DCAE;border-radius:10px;font-size:12px;color:#6B4A0D;line-height:1.5;}
.v2-app .fg-amber-strip strong{font-weight:700;}

/* Acciones secundarias (paso 2: reenviar / cambiar email) */
.v2-app .fg-actions{display:flex;gap:10px;}
.v2-app .fg-actions.col{flex-direction:column;}
.v2-app .fg-act{flex:1;height:48px;border-radius:11px;border:1px solid var(--line);background:#fff;font-family:'Roboto',sans-serif;font-size:13.5px;font-weight:600;color:var(--blue-d);display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s;}
.v2-app .fg-act svg{width:15px;height:15px;}
.v2-app .fg-act:hover:not(:disabled){background:var(--paper-3);border-color:#CBD6DE;}
.v2-app .fg-act:disabled{opacity:.6;cursor:default;}
.v2-app .fg-act.neutral{color:var(--ink-2);}
.v2-app .fg-tipline{text-align:center;margin-top:22px;font-size:12.5px;color:var(--ink-3);line-height:1.5;}
.v2-app .fg-tipline strong{color:var(--ink-2);font-weight:600;}

/* Pill de estado (paso 3: link verificado / vencido) */
.v2-app .fg-vpill{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;margin-bottom:14px;}
.v2-app .fg-vpill svg{width:12px;height:12px;}
.v2-app .fg-vpill.ok{background:#E7F3EB;color:var(--green);}
.v2-app .fg-vpill.bad{background:#FBE9E7;color:var(--danger);}

/* Strength meter (paso 3) */
.v2-app .fg-str{margin:2px 0 18px;}
.v2-app .fg-str-bars{display:flex;gap:5px;margin-bottom:7px;}
.v2-app .fg-str-bar{flex:1;height:5px;border-radius:3px;background:var(--line);}
.v2-app .fg-str-bar.weak{background:var(--danger);}
.v2-app .fg-str-bar.fair{background:var(--amber);}
.v2-app .fg-str-bar.good{background:#2DA855;}
.v2-app .fg-str-bar.strong{background:var(--green);}
.v2-app .fg-str-row{display:flex;justify-content:space-between;font-size:12px;}
.v2-app .fg-str-row .l{color:var(--ink-3);}
.v2-app .fg-str-row .r{font-weight:700;color:var(--ink-3);}
.v2-app .fg-str-row .r.weak{color:var(--danger);}
.v2-app .fg-str-row .r.fair{color:var(--amber);}
.v2-app .fg-str-row .r.good{color:#2DA855;}
.v2-app .fg-str-row .r.strong{color:var(--green);}

/* Card de requisitos (paso 3) */
.v2-app .fg-reqs{padding:14px 16px;background:var(--paper-3);border:1px solid var(--line);border-radius:12px;margin-bottom:18px;}
.v2-app .fg-reqs-h{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:1.4px;text-transform:uppercase;font-weight:700;color:var(--ink-2);margin-bottom:8px;}
.v2-app .fg-req{display:flex;align-items:center;gap:9px;padding:4px 0;font-size:13px;color:var(--ink-3);font-weight:500;}
.v2-app .fg-req.ok{color:var(--green);font-weight:600;}
.v2-app .fg-req .bub{width:19px;height:19px;border-radius:50%;background:#E1E8ED;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--green);}
.v2-app .fg-req.ok .bub{background:#E7F3EB;}
.v2-app .fg-req .bub svg{width:11px;height:11px;}
.v2-app .fg-req .bub .dot{width:5px;height:5px;border-radius:50%;background:var(--ink-3);}

/* Estado éxito (paso 3: contraseña actualizada) */
.v2-app .fg-success{text-align:center;padding:14px 0;}
.v2-app .fg-success-ic{width:74px;height:74px;border-radius:50%;background:#E7F3EB;color:var(--green);display:flex;align-items:center;justify-content:center;margin:0 auto 18px;}
.v2-app .fg-success-ic svg{width:36px;height:36px;}
.v2-app .fg-validating{text-align:center;padding:40px 0;}
.v2-app .fg-validating .lg-spin{width:30px;height:30px;border-width:3px;margin:0 auto 18px;}

/* ═══════════════════════════════════════════════════════════════════
   Onboarding · registro confirmación (submitted/review/verify) + primer
   ingreso (welcome/setpassword), diseño v2. Reusa shell de Registro
   (.sgx / .ms / .sg-brand / .sg-steps) + contenido og-*.
   ═══════════════════════════════════════════════════════════════════ */
/* Hero centrado grande (submitted/review/welcome) */
.v2-app .og-hero{position:relative;width:108px;height:108px;margin:0 auto 18px;}
.v2-app .og-hero-halo{position:absolute;inset:0;border-radius:50%;}
.v2-app .og-hero-disc{position:absolute;inset:8px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.v2-app .og-hero-disc svg{width:48px;height:48px;}
.v2-app .og-hero.green .og-hero-halo{background:radial-gradient(circle,rgba(46,138,87,.22) 0%,transparent 70%);}
.v2-app .og-hero.green .og-hero-disc{background:#E7F3EB;border:1px solid rgba(46,138,87,.3);color:var(--green);}
.v2-app .og-hero.amber .og-hero-halo{background:radial-gradient(circle,rgba(224,154,42,.22) 0%,transparent 70%);}
.v2-app .og-hero.amber .og-hero-disc{background:#FBF4E2;border:1px solid rgba(224,154,42,.35);color:var(--amber);}
.v2-app .og-hero-ring{position:absolute;inset:0;width:108px;height:108px;animation:og-spin 3.5s linear infinite;}
@keyframes og-spin{to{transform:rotate(360deg);}}

/* Badge "cuenta aprobada" */
.v2-app .og-badge{display:inline-flex;align-items:center;gap:7px;margin-top:14px;padding:6px 13px;border-radius:999px;background:#E7F3EB;color:var(--green);font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;}
.v2-app .og-badge .dot{width:7px;height:7px;border-radius:50%;background:var(--green);}

/* Ticket / número de solicitud */
.v2-app .og-ticket{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:14px;background:var(--navy);color:#fff;margin-bottom:18px;}
.v2-app .og-ticket-ic{width:40px;height:40px;border-radius:11px;background:rgba(255,255,255,.14);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--blue);}
.v2-app .og-ticket-ic svg{width:20px;height:20px;}
.v2-app .og-ticket-b{flex:1;min-width:0;}
.v2-app .og-ticket-e{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:1.4px;text-transform:uppercase;color:rgba(255,255,255,.6);}
.v2-app .og-ticket-id{font-family:'JetBrains Mono',monospace;font-size:17px;font-weight:700;letter-spacing:.5px;margin-top:3px;}
.v2-app .og-ticket-copy{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;height:34px;padding:0 13px;border-radius:9px;border:1px solid rgba(255,255,255,.26);background:rgba(255,255,255,.10);color:#fff;font-family:'Roboto',sans-serif;font-size:12.5px;font-weight:600;cursor:pointer;}
.v2-app .og-ticket-copy svg{width:14px;height:14px;}
.v2-app .og-ticket-copy:hover{background:rgba(255,255,255,.18);}

/* Card key/value (resumen solicitud) — dentro de .fg-card */
.v2-app .fg-card-h.row{display:flex;align-items:center;justify-content:space-between;}
.v2-app .og-when{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--ink-3);font-weight:600;letter-spacing:0;text-transform:none;}
.v2-app .og-kv{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px dashed var(--line);}
.v2-app .og-kv:last-child{border-bottom:none;}
.v2-app .og-kv .k{font-size:13px;color:var(--ink-3);}
.v2-app .og-kv .v{font-size:13.5px;font-weight:600;color:var(--ink);text-align:right;word-break:break-word;}

/* Info card (próximo paso / no-linked) */
.v2-app .og-info{display:flex;gap:13px;padding:15px 17px;border-radius:13px;background:var(--sky);border:1px solid rgba(0,174,239,.28);margin-bottom:18px;}
.v2-app .og-info.alert{background:#FBE9E7;border-color:#F0CFCB;}
.v2-app .og-info-ic{width:34px;height:34px;border-radius:10px;background:rgba(0,174,239,.16);color:var(--navy);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.v2-app .og-info.alert .og-info-ic{background:rgba(188,59,44,.12);color:var(--danger);}
.v2-app .og-info-ic svg{width:17px;height:17px;}
.v2-app .og-info-t{font-size:13.5px;font-weight:700;color:var(--ink);}
.v2-app .og-info.alert .og-info-t{color:var(--danger);}
.v2-app .og-info-b{font-size:12.5px;color:var(--ink-2);line-height:1.5;margin-top:3px;}
.v2-app .og-info-b strong{font-weight:700;color:var(--ink);}

/* Checklist (review: qué estamos haciendo) — dentro de .fg-card */
.v2-app .og-check{display:flex;gap:13px;padding:10px 0;}
.v2-app .og-check-bub{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.v2-app .og-check.done .og-check-bub{background:#E7F3EB;color:var(--green);}
.v2-app .og-check.done .og-check-bub svg{width:13px;height:13px;}
.v2-app .og-check.active .og-check-bub{background:var(--sky);border:2px solid var(--blue);}
.v2-app .og-check.active .og-check-bub .d{width:7px;height:7px;border-radius:50%;background:var(--blue);}
.v2-app .og-check.pending .og-check-bub{background:#E1E8ED;}
.v2-app .og-check.pending .og-check-bub .d{width:6px;height:6px;border-radius:50%;background:var(--ink-3);}
.v2-app .og-check-t{font-size:13.5px;font-weight:600;color:var(--ink);display:flex;align-items:center;gap:8px;}
.v2-app .og-check.pending .og-check-t{color:var(--ink-3);font-weight:500;}
.v2-app .og-check-d{font-size:12px;color:var(--ink-3);margin-top:2px;line-height:1.4;}
.v2-app .og-chip{font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.6px;text-transform:uppercase;font-weight:700;padding:2px 7px;border-radius:5px;background:#FBF4E2;color:#9A6B12;}

/* Temp password card */
.v2-app .og-temppw{padding:16px 18px;border-radius:14px;background:var(--paper-3);border:1px solid var(--line);margin-bottom:18px;}
.v2-app .og-temppw-h{display:flex;align-items:center;gap:8px;font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:1.4px;text-transform:uppercase;font-weight:700;color:var(--ink-2);margin-bottom:11px;}
.v2-app .og-temppw-h svg{width:14px;height:14px;}
.v2-app .og-temppw-code{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border-radius:10px;background:#fff;border:1px dashed var(--blue);}
.v2-app .og-temppw-v{font-family:'JetBrains Mono',monospace;font-size:18px;font-weight:700;letter-spacing:1px;color:var(--navy);}
.v2-app .og-temppw-copy{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;height:32px;padding:0 12px;border-radius:8px;border:1px solid var(--line);background:var(--paper-2);color:var(--blue-d);font-size:12.5px;font-weight:600;cursor:pointer;}
.v2-app .og-temppw-copy svg{width:13px;height:13px;}
.v2-app .og-temppw-fallback{font-size:12.5px;color:var(--ink-2);line-height:1.5;}
.v2-app .og-temppw-disc{font-size:11.5px;color:var(--ink-3);line-height:1.5;margin-top:10px;}
.v2-app .og-temppw-disc strong{color:var(--ink-2);font-weight:600;}

/* Cuenta · resumen 2x2 (welcome) */
.v2-app .og-acct{padding:18px 20px;border-radius:14px;background:#fff;border:1px solid var(--line);box-shadow:0 1px 2px rgba(4,81,119,.06);margin-bottom:18px;}
.v2-app .og-acct-e{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:1.6px;text-transform:uppercase;font-weight:700;color:var(--ink-3);margin-bottom:14px;}
.v2-app .og-acct-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.v2-app .og-acct-cell .l{font-size:11.5px;color:var(--ink-3);}
.v2-app .og-acct-cell .v{font-family:'JetBrains Mono',monospace;font-size:16px;font-weight:700;color:var(--navy);margin-top:3px;}

/* Footer help / textlink / foot note / reco (brand) */
.v2-app .og-help{text-align:center;margin-top:20px;font-size:12.5px;color:var(--ink-3);line-height:1.5;}
.v2-app .og-help a,.v2-app .og-help strong{color:var(--ink-2);font-weight:600;text-decoration:none;}
.v2-app .og-foot{margin-top:16px;padding:11px 15px;background:var(--paper-3);border:1px solid var(--line);border-radius:10px;font-size:12px;color:var(--ink-2);line-height:1.5;text-align:center;}
.v2-app .og-foot strong{color:var(--ink);font-weight:600;}
.v2-app .og-textlink{display:block;margin:18px auto 0;background:none;border:none;cursor:pointer;font-family:'Roboto',sans-serif;font-size:13px;font-weight:600;color:var(--ink-3);}
.v2-app .og-textlink:hover{color:var(--ink-2);text-decoration:underline;}
.v2-app .og-name{color:var(--blue-d);}

/* Toast */
.v2-app .og-toast{position:fixed;left:50%;bottom:32px;transform:translateX(-50%);z-index:50;padding:11px 20px;border-radius:999px;background:var(--navy);color:#fff;font-size:13px;font-weight:600;box-shadow:0 10px 30px -8px rgba(4,81,119,.5);}

/* Confetti (welcome) */
.v2-app .og-confetti{position:absolute;left:0;right:0;top:-20px;height:130px;pointer-events:none;}
.v2-app .og-confetti-piece{position:absolute;top:0;width:7px;height:11px;border-radius:2px;opacity:0;animation:og-confetti linear infinite;}
.v2-app .og-confetti-piece.c0{background:var(--blue);}
.v2-app .og-confetti-piece.c1{background:var(--green);}
.v2-app .og-confetti-piece.c2{background:var(--amber);}
.v2-app .og-confetti-piece.c3{background:#6FD3F5;}
@keyframes og-confetti{0%{opacity:0;transform:translateY(-10px) rotate(0);}12%{opacity:1;}100%{opacity:0;transform:translateY(130px) rotate(320deg);}}

/* Brand: card de recomendaciones (setpassword) — reusa look de fg-tip */
.v2-app .og-reco{position:relative;z-index:1;margin-top:auto;padding:22px 24px;border-radius:18px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(10px);}
.v2-app .og-reco-h{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:2px;text-transform:uppercase;font-weight:700;color:rgba(255,255,255,.85);margin-bottom:10px;}
.v2-app .og-reco-item{display:flex;align-items:center;gap:11px;padding:7px 0;font-size:14px;color:rgba(255,255,255,.9);}
.v2-app .og-reco-item svg{width:16px;height:16px;color:var(--blue);flex-shrink:0;}

/* VerifyEmail (bridge) — pantalla simple centrada navy */
.v2-app.ve-host{display:flex;align-items:center;justify-content:center;min-height:100dvh;height:auto;background:linear-gradient(150deg,#0A6190 0%,var(--navy) 55%,#033B57 100%);padding:30px;overflow:auto;}
.v2-app .ve-card{text-align:center;color:#fff;max-width:430px;}
.v2-app .ve-spin{width:42px;height:42px;border-radius:50%;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;animation:lg-spin .8s linear infinite;margin:0 auto 20px;}
.v2-app .ve-ic{width:74px;height:74px;border-radius:50%;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.24);display:flex;align-items:center;justify-content:center;margin:0 auto 20px;color:#FFD9D4;}
.v2-app .ve-ic svg{width:34px;height:34px;}
.v2-app .ve-t{font-family:'Saira',sans-serif;font-size:28px;font-weight:700;letter-spacing:-.6px;margin:0;}
.v2-app .ve-p{font-size:14.5px;color:rgba(255,255,255,.82);margin-top:12px;line-height:1.55;}
.v2-app .ve-p strong{color:#fff;font-weight:600;}
.v2-app .ve-btn{display:inline-flex;align-items:center;gap:9px;margin-top:24px;height:52px;padding:0 26px;border-radius:13px;background:#fff;color:var(--navy);font-size:15px;font-weight:700;text-decoration:none;}

/* ═══════════════════════════════════════════════════════════════════
   Autenticación en 2 pasos · /cuenta/2fa (v2). Reusa shell de Registro
   (.sgx / .ms) + primitivas (fg-hero/fg-h2/lg-btn/OtpCells). Contenido t2-*.
   ═══════════════════════════════════════════════════════════════════ */
/* Brand: card de apps recomendadas / buenas prácticas */
.v2-app .t2-apps{position:relative;z-index:1;margin-top:auto;padding:22px 24px;border-radius:18px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(10px);}
.v2-app .t2-apps-h{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:2px;text-transform:uppercase;font-weight:700;color:rgba(255,255,255,.85);margin-bottom:6px;}
.v2-app .t2-app{display:flex;align-items:center;gap:13px;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.12);}
.v2-app .t2-app:last-child{border-bottom:none;}
.v2-app .t2-app-ic{width:30px;height:30px;border-radius:9px;background:rgba(0,174,239,.18);border:1px solid rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center;color:var(--blue);flex-shrink:0;}
.v2-app .t2-app-ic svg{width:13px;height:13px;}
.v2-app .t2-app-b b{display:block;font-size:14px;font-weight:600;color:#fff;}
.v2-app .t2-app-b span{display:block;font-size:12px;color:rgba(255,255,255,.7);margin-top:1px;}

/* Stepper horizontal (escanear · verificar · códigos) */
.v2-app .t2-stepper{display:flex;align-items:center;gap:10px;margin-bottom:22px;}
.v2-app .t2-step{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:600;color:var(--ink-3);white-space:nowrap;}
.v2-app .t2-step .n{width:24px;height:24px;border-radius:50%;background:var(--paper-3);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:700;color:var(--ink-3);}
.v2-app .t2-step.active{color:var(--ink);}
.v2-app .t2-step.active .n{background:var(--navy);border-color:var(--navy);color:#fff;}
.v2-app .t2-step-div{flex:1;height:1px;background:var(--line);min-width:12px;}

/* Cards genéricas del cuerpo 2FA */
.v2-app .t2-card{padding:18px 20px;border:1px solid var(--line);border-radius:14px;background:var(--paper-2);margin-bottom:16px;}
.v2-app .t2-kicker{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:1.2px;text-transform:uppercase;font-weight:700;color:var(--blue-d);margin-bottom:8px;}
.v2-app .t2-err{font-size:12.5px;color:var(--danger);font-weight:500;margin-top:10px;}

/* QR + instrucciones */
.v2-app .t2-qr-grid{display:grid;grid-template-columns:200px 1fr;gap:22px;align-items:start;}
.v2-app .t2-qr-col{display:flex;flex-direction:column;align-items:center;gap:8px;}
.v2-app .t2-qr-box{padding:12px;background:#fff;border:2px solid var(--navy);border-radius:12px;box-shadow:0 4px 14px rgba(4,81,119,.12);}
.v2-app .t2-qr-canvas{width:176px;height:176px;}
.v2-app .t2-qr-canvas svg{width:100%;height:100%;display:block;}
.v2-app .t2-qr-hint{font-size:11px;color:var(--ink-3);text-align:center;}
.v2-app .t2-manual{margin-top:16px;padding-top:16px;border-top:1px solid var(--line);}
.v2-app .t2-list{margin:0;padding:0 0 0 18px;font-size:13px;color:var(--ink-2);line-height:1.7;}
.v2-app .t2-list b{color:var(--ink);font-weight:600;}
.v2-app .t2-manualkey{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border-radius:10px;background:var(--paper-3);border:1px solid var(--line);}
.v2-app .t2-manualkey-v{flex:1;min-width:0;font-family:'JetBrains Mono',monospace;font-size:13.5px;font-weight:700;letter-spacing:1px;color:var(--navy);line-height:1.5;overflow-wrap:anywhere;}
.v2-app .t2-copykey{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;height:30px;padding:0 11px;border-radius:8px;border:1px solid var(--line);background:var(--paper-2);color:var(--blue-d);font-size:12px;font-weight:600;cursor:pointer;}
.v2-app .t2-copykey svg{width:12px;height:12px;}
.v2-app .t2-account{font-size:12px;color:var(--ink-3);margin-top:10px;}
.v2-app .t2-account b{color:var(--ink);font-weight:600;}
.v2-app .t2-otp-cap{font-size:11.5px;color:var(--ink-3);margin-top:10px;text-align:center;}

/* CTA row (cancelar + verificar) */
.v2-app .t2-cta-row{display:flex;gap:12px;align-items:center;margin-top:18px;}
.v2-app .t2-cta-row .lg-btn{flex:1;}
.v2-app .t2-cancel{height:58px;padding:0 24px;border-radius:12px;border:1px solid var(--line);background:var(--paper-2);font-family:'Roboto',sans-serif;font-size:15px;font-weight:600;color:var(--ink-2);cursor:pointer;}
.v2-app .t2-cancel:hover{background:var(--paper-3);}

/* Recovery codes */
.v2-app .t2-codes-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;}
.v2-app .t2-codes-stamp{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--ink-3);}
.v2-app .t2-codes-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.v2-app .t2-code{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:9px;background:var(--paper-3);border:1px solid var(--line);}
.v2-app .t2-code-n{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--ink-3);}
.v2-app .t2-code-v{font-family:'JetBrains Mono',monospace;font-size:15px;font-weight:700;letter-spacing:1px;color:var(--navy);}
.v2-app .t2-actions{display:flex;gap:10px;margin-bottom:18px;}
.v2-app .t2-action{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;height:44px;border-radius:11px;border:1px solid var(--line);background:var(--paper-2);font-family:'Roboto',sans-serif;font-size:13px;font-weight:600;color:var(--blue-d);cursor:pointer;}
.v2-app .t2-action svg{width:14px;height:14px;}
.v2-app .t2-action:hover{background:var(--paper-3);border-color:#CBD6DE;}
.v2-app .t2-ack{display:flex;align-items:flex-start;gap:11px;margin:4px 0 18px;font-size:13px;color:var(--ink-2);line-height:1.5;cursor:pointer;user-select:none;}
.v2-app .t2-ack input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;}
.v2-app .t2-ack-box{flex-shrink:0;margin-top:1px;width:20px;height:20px;border-radius:6px;border:1.5px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:center;color:#fff;}
.v2-app .t2-ack-box.on{background:var(--blue);border-color:var(--blue);}
.v2-app .t2-ack-box svg{width:12px;height:12px;}

/* Manage: pila de acciones (reusa lg-btn2) + responsive grid del QR */
.v2-app .t2-stack{display:flex;flex-direction:column;gap:12px;}
@media (max-width:599px){
  .v2-app .t2-qr-grid{grid-template-columns:1fr;gap:16px;justify-items:center;}
  .v2-app .t2-qr-grid > div:last-child{width:100%;}
  .v2-app .t2-codes-grid{grid-template-columns:1fr;}
  .v2-app .t2-actions{flex-direction:column;}
  .v2-app .t2-cta-row{flex-direction:column-reverse;}
  .v2-app .t2-cta-row .t2-cancel{width:100%;}
}

/* ═══════════════════════════════════════════════════════════════════
   RESPONSIVE del shell v2 — bandas tablet y mobile.
   Cortes en px FÍSICOS, sincronizados con b2bV2Scaler (js/v2.js):
     ≥1366 desktop (matriz aprobada, sin cambios acá)
     700–1365 tablet: zoom clavado en 1366/1920, el board se angosta y
       el contenido apila a 1 columna con scroll de página.
     <700 mobile: zoom 1, chrome propio (m-top + m-botnav + m-fab) y
       reflow por página siguiendo los handoffs mobile de Claude Design
       (botnav aprobado: Inicio · Productos · Pedido · Cta.Cte. · Cuenta)
       re-estilizados al manual v2.
   ═══════════════════════════════════════════════════════════════════ */

/* Chrome mobile: no existe fuera de la banda <700 */
.v2-app .m-top,.v2-app .m-botnav,.v2-app .m-fab{display:none;}

/* ───────────────────────────── TABLET (700–1365) ───────────────────────────── */
@media (min-width:700px) and (max-width:1365.98px){
  /* La página scrollea completa; los contenedores dejan el alto natural. */
  .v2-app .content{overflow-y:auto;overflow-x:hidden;gap:22px;}
  .v2-app .content::-webkit-scrollbar{width:9px;}
  .v2-app .content::-webkit-scrollbar-thumb{background:var(--line);border-radius:5px;}

  /* Home apilado */
  .v2-app .masthead{grid-template-columns:1fr;gap:22px;}
  .v2-app .lower{display:flex;flex-direction:column;flex:none;gap:26px;min-height:auto;}
  .v2-app .ledger{flex:none;overflow:visible;}
  .v2-app .ledger-row:not(.hd){flex:none;}
  .v2-app .news{flex:none;overflow:visible;}
  .v2-app .rcol{min-height:auto;}

  /* Cuenta corriente / listados */
  .v2-app .res-grid{grid-template-columns:1fr;flex:none;overflow:visible;}
  /* Los cards de listado llevan flex:1 + min-height:0 inline (diseño desktop de
     alto fijo): con la página scrolleando colapsan a 0 y "desaparecen". */
  .v2-app .card{flex:none !important;min-height:auto !important;}
  .v2-app .dt{flex:none;overflow:visible;}
  .v2-app .dt-row:not(.head){flex:none;}
  .v2-app .trk-list{flex:none;overflow:visible;}

  /* Perfil y calculadora a 1 columna */
  .v2-app .pf-bottom{grid-template-columns:1fr;flex:none;overflow:visible;}
  .v2-app .calc-grid{grid-template-columns:1fr;flex:none;}
  .v2-app .calc-left{overflow:visible;}
  .v2-app .calc-pdf{min-height:560px;}
  .v2-app .calc-pdf-frame{min-height:480px;}

  /* Catálogo: la tabla scrollea con la página; la ficha flota encima */
  .v2-app .cat-wrap{flex:none;}
  .v2-app .cat-table{flex:none;overflow:visible;}
  .v2-app .pr-scroll{flex:none;overflow:visible;}
  .v2-app .cat-main{flex:none;position:relative;}
  .v2-app .pdt-panel{position:absolute;top:0;right:0;bottom:auto;max-height:100%;z-index:30;box-shadow:-16px 0 40px rgba(15,42,58,.16);}

  /* Nuevo pedido: la barra de sucursal/entrega envuelve */
  .v2-app .pos{flex:none;}
  .v2-app .pos-suc{flex-wrap:wrap;row-gap:10px;}
  .v2-app .pos-tablewrap{flex:none;overflow:visible;}
  .v2-app .pos-lines{flex:none;overflow:visible;}

  /* Chat: overlay sobre el contenido en vez de empujarlo */
  .v2-app .board.chat-open{grid-template-columns:268px 1fr 0px;}
  .v2-app .chat-panel{position:absolute;top:0;right:0;bottom:0;z-index:40;width:0;transition:width .22s ease;}
  .v2-app .board.chat-open .chat-panel{width:384px;box-shadow:-16px 0 40px rgba(15,42,58,.18);}
}

/* Tablet angosta / vertical: KPIs de a 2 */
@media (min-width:700px) and (max-width:1099.98px){
  .v2-app .kpis{grid-template-columns:1fr 1fr;}
  .v2-app .pg-head{flex-direction:column;align-items:flex-start;gap:14px;}
}

/* ───────────────────────────── MOBILE (<700) ───────────────────────────── */
@media (max-width:699.98px){

  /* ── Shell: columna topbar → contenido → botnav ── */
  .v2-app .board{display:flex;flex-direction:column;}
  .v2-app .home-watermark{display:none;}
  .v2-app .rail{display:none;}
  .v2-app .util{display:none;}
  .v2-app .main{flex:1;min-height:0;}
  .v2-app .content{padding:14px 14px 76px;gap:16px;overflow-y:auto;overflow-x:hidden;}

  .v2-app .m-top{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:#fff;border-bottom:1px solid var(--line);flex-shrink:0;position:relative;z-index:6;}
  .v2-app .m-logo{display:block;}
  .v2-app .m-logo img{display:block;height:30px;width:auto;}
  .v2-app .m-uchip{border-left:none;padding-left:0;margin-left:0;}
  .v2-app .m-uchip .av{width:36px;height:36px;border-radius:10px;}

  .v2-app .m-botnav{display:flex;background:#fff;border-top:1px solid var(--line);flex-shrink:0;padding:6px 4px calc(8px + env(safe-area-inset-bottom,0px));position:relative;z-index:6;}
  .v2-app .m-bitem{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:4px 0;text-decoration:none;color:var(--ink-3);font-size:10px;font-weight:500;white-space:nowrap;}
  .v2-app .m-bitem .ic{width:20px;height:20px;}
  .v2-app .m-bitem.active{color:var(--navy);font-weight:700;}
  .v2-app .m-bitem.active .ic{color:var(--blue);}

  .v2-app .m-fab{display:flex;position:absolute;right:14px;bottom:calc(76px + env(safe-area-inset-bottom,0px));width:48px;height:48px;border-radius:50%;background:var(--blue);border:none;box-shadow:0 8px 20px rgba(0,174,239,.4);align-items:center;justify-content:center;cursor:pointer;z-index:30;}
  .v2-app .m-fab .ic{width:22px;height:22px;color:#fff;}

  /* Chat a pantalla completa */
  .v2-app .chat-panel{display:none;}
  .v2-app .board.chat-open .chat-panel{display:block;position:absolute;inset:0;z-index:60;border-left:none;}
  .v2-app .chat-inner{width:100%;}

  /* ── Home (handoff mobile re-estilizado al manual v2) ── */
  .v2-app .masthead{display:flex;flex-direction:column;gap:16px;}
  .v2-app .greet .h1{font-size:30px;letter-spacing:-.5px;margin-top:8px;}
  .v2-app .greet .sub{font-size:13px;margin-top:10px;}
  .v2-app .toolbar{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px;}
  .v2-app .toolbar .btn{height:46px;padding:0 10px;font-size:13px;border-radius:11px;justify-content:center;}
  .v2-app .cc{padding:18px 16px 16px;}
  .v2-app .cc-amount{font-size:32px;margin-top:10px;}
  .v2-app .cc-amount .cur{font-size:18px;}
  .v2-app .cc-meta{font-size:12.5px;}
  .v2-app .meter{margin-top:14px;}
  .v2-app .meter-leg{gap:12px;flex-wrap:wrap;margin-top:10px;}
  .v2-app .cc-actions{padding-top:16px;gap:8px;}
  .v2-app .cc-actions .btn{height:42px;font-size:13px;padding:0 8px;}
  .v2-app .lower{display:flex;flex-direction:column;flex:none;gap:20px;min-height:auto;}
  .v2-app .rcol{min-height:auto;}

  /* Últimos pedidos: de tabla a cards */
  .v2-app .ledger{flex:none;overflow:visible;border:none;background:transparent;gap:8px;}
  .v2-app .ledger-row.hd{display:none;}
  .v2-app .ledger-row{border:1px solid var(--line);border-radius:10px;background:var(--paper-2);padding:10px 12px;grid-template-columns:1fr auto;gap:4px 10px;}
  .v2-app .ledger-row:not(.hd){flex:none;min-height:0;}
  .v2-app .ledger-row>div:nth-child(1){grid-column:1;grid-row:1;}
  .v2-app .ledger-row>div:nth-child(2){grid-column:2;grid-row:1;justify-self:end;}
  .v2-app .ledger-row>div:nth-child(3){grid-column:1;grid-row:2;min-width:0;}
  .v2-app .ledger-row>div:nth-child(4){display:none;}   /* peso: no aporta en mobile */
  .v2-app .ledger-row>div:nth-child(5){grid-column:2;grid-row:2;align-self:end;}
  .v2-app .ledger-foot{position:static;border:1px solid var(--line);border-radius:10px;margin-top:0;}
  .v2-app .news{flex:none;overflow:visible;}

  /* ── Encabezados de página / tabs / filtros ── */
  .v2-app .pg-title{font-size:26px;}
  .v2-app .pg-head{flex-direction:column;align-items:flex-start;gap:12px;}
  .v2-app .pg-actions{flex-wrap:wrap;}
  .v2-app .cc-tabs{overflow-x:auto;scrollbar-width:none;}
  .v2-app .cc-tabs::-webkit-scrollbar{height:0;}
  .v2-app .cc-tab{white-space:nowrap;padding:10px 12px;}
  .v2-app .kpis{grid-template-columns:1fr 1fr;gap:10px;}
  .v2-app .kpi .val{font-size:20px;}
  .v2-app .filters .input{flex:1 1 100%;}

  /* ── Tablas densas (CC, historial, líneas del pedido): scroll horizontal ──
     v1 funcional: la tabla conserva todas las columnas y se desliza al costado.
     Refinamiento por formulario según feedback de Nando. */
  .v2-app .res-grid{grid-template-columns:1fr;flex:none;overflow:visible;}
  /* Mismo fix que en tablet: los cards con flex:1 inline colapsaban a 0
     (p.ej. el listado del Resumen de pedidos no se veía). */
  .v2-app .card{flex:none !important;min-height:auto !important;}
  /* CC Resumen: fuera el gráfico Facturado vs. pagado y Composición del saldo
     (columna izquierda entera), pedido de Nando para mobile. */
  .v2-app .res-grid .res-col:first-child{display:none;}
  /* Últimas facturas como card de 2 columnas: nro+estado / vto+importe. */
  .v2-app .mini-row{grid-template-columns:1fr auto;gap:2px 10px;padding:12px 16px;}
  .v2-app .mini-row>div:nth-child(1){grid-column:1;grid-row:1;}
  .v2-app .mini-row>div:nth-child(4){grid-column:2;grid-row:1;justify-self:end;}
  .v2-app .mini-row>div:nth-child(2){grid-column:1;grid-row:2;align-self:center;}
  .v2-app .mini-row>div:nth-child(2)::before{content:"Vto. ";font-family:'Roboto',sans-serif;font-size:11px;color:var(--ink-3);}
  .v2-app .mini-row>div:nth-child(3){grid-column:2;grid-row:2;justify-self:end;align-self:center;}
  /* Filtro de fechas: que envuelva en vez de desbordar por la derecha. */
  .v2-app .drf{flex-wrap:wrap;height:auto;min-height:36px;padding:6px 10px;row-gap:6px;}
  .v2-app .drf-btn{margin-left:auto;}
  .v2-app .dt{flex:none;overflow-x:auto;overflow-y:hidden;}
  .v2-app .dt-row{min-width:640px;}
  .v2-app .dt-row:not(.head){flex:none;}
  .v2-app .trk-list{flex:none;overflow:visible;}
  .v2-app .trk-card{padding:14px;}
  .v2-app .trk-head{flex-wrap:wrap;gap:10px;}
  .v2-app .trk-lbl{font-size:9px;}

  /* ── Catálogo: filas como cards (handoff MobileCatalog) ── */
  .v2-app .cat-wrap{flex:none;}
  .v2-app .cat-table{flex:none;overflow:visible;}
  .v2-app .pr-scroll{flex:none;overflow:visible;}
  .v2-app .pr-row.head{display:none;}
  .v2-app .pr-scroll .pr-row{height:auto;padding:11px 14px;grid-template-columns:48px 1fr auto;gap:2px 12px;align-items:start;}
  .v2-app .pr-foto{width:48px;height:48px;grid-column:1;grid-row:1 / span 3;}
  .v2-app .pr-sku{grid-column:2;grid-row:1;}
  .v2-app .pr-name{grid-column:2 / span 2;grid-row:2;white-space:normal;line-height:1.3;}
  .v2-app .pr-cat{grid-column:2;grid-row:3;}
  .v2-app .pr-um{grid-column:3;grid-row:3;text-align:right;}
  .v2-app .pr-price{grid-column:3;grid-row:1;}
  /* Lista de precios reusa .pr-row con más celdas */
  .v2-app .lp-base{grid-column:2;grid-row:4;text-align:left;}
  .v2-app .lp-discwrap{grid-column:2;grid-row:5;justify-content:flex-start;}
  .v2-app .lp-net{grid-column:3;grid-row:4 / span 2;align-self:center;font-size:15.5px;}
  .v2-app .lp-head{flex-wrap:wrap;gap:12px;}
  .v2-app .lp-actions{margin-left:0;width:100%;flex-wrap:wrap;}
  .v2-app .lp-actions .btn{flex:1;justify-content:center;}

  /* Ficha de producto: overlay a pantalla completa */
  .v2-app .cat-main{flex:none;display:block;}
  .v2-app .pdt-panel{position:absolute;inset:0;z-index:50;width:auto;border-radius:0;animation:none;}

  /* ── Nuevo pedido (POS) ── */
  .v2-app .pos{flex:none;gap:12px;}
  /* Encabezado apilado: Empresa → Sucursal → Entrega, sin los cuadraditos de ícono. */
  .v2-app .pos-suc{flex-direction:column;align-items:stretch;gap:12px;padding:14px;}
  .v2-app .pos-suc .ps-ic{display:none;}
  .v2-app .pos-sep{display:none;}
  .v2-app .pos-sucsel{display:flex;}
  .v2-app .pos-sucsel select{flex:1;width:100%;}
  .v2-app .pos-sucaddr{border-left:none;padding-left:0;margin-left:0;font-size:12.5px;margin-top:-6px;}
  .v2-app .pos-delivrow select{width:100%;}
  .v2-app .pos-bar{flex-wrap:wrap;gap:8px;}
  .v2-app .pos-search{flex:1 1 100%;height:50px;}
  /* Buscador con resultados: se ancla arriba de la pantalla y el desplegable
     ocupa todo el alto hasta el botnav (pedido de Nando: con el teclado abierto
     y el buscador a mitad de página quedaba un huequito inservible). */
  .v2-app .pos-search:has(.pos-drop){position:fixed;top:8px;left:8px;right:8px;z-index:90;box-shadow:0 10px 34px rgba(15,42,58,.25);}
  .v2-app .pos-search:has(.pos-drop) .pos-drop{position:fixed;top:64px;left:8px;right:8px;bottom:calc(72px + env(safe-area-inset-bottom,0px));max-height:none;box-shadow:0 20px 50px rgba(15,42,58,.3);}
  .v2-app .pos-qtyf{flex:1;height:50px;}
  .v2-app .pos-add{flex:1;height:50px;padding:0 10px;justify-content:center;}
  /* Líneas del pedido como cards (misma receta que el catálogo mobile). */
  .v2-app .pos-tablewrap{flex:none;overflow:visible;}
  .v2-app .pl-row.head{display:none;}
  .v2-app .pos-lines{flex:none;overflow:visible;}
  .v2-app .pos-lines .pl-row{height:auto;padding:12px 14px;grid-template-columns:48px 1fr auto;gap:4px 12px;align-items:start;}
  .v2-app .pl-foto{width:48px;height:48px;grid-column:1;grid-row:1 / span 2;}
  .v2-app .pl-sku{grid-column:2;grid-row:1;}
  .v2-app .pl-rm-c{grid-column:3;grid-row:1;justify-content:flex-end;}
  .v2-app .pos-lines .pl-row>div:nth-child(3){grid-column:2 / span 2;grid-row:2;}   /* nombre + obs */
  .v2-app .pl-name{white-space:normal;line-height:1.3;}
  .v2-app .pl-unit{grid-column:2;grid-row:3;text-align:left;align-self:center;}
  .v2-app .pl-unit::before{content:"P. unit. ";font-family:'Roboto',sans-serif;font-size:11px;color:var(--ink-3);}
  .v2-app .pl-kg{display:none;}
  .v2-app .pl-qtyc{grid-column:2;grid-row:4;justify-content:flex-start;}
  .v2-app .pl-sub{grid-column:3;grid-row:4;align-self:center;font-size:15px;color:var(--navy);}
  .v2-app .pl-obs{padding:0 14px 12px;}
  .v2-app .pos-foot{flex-wrap:wrap;gap:12px;padding:14px;}
  .v2-app .pf-meta{flex-wrap:wrap;gap:10px 18px;}
  .v2-app .pos-foot .pf-tot{margin-left:0;flex:1 1 100%;justify-content:space-between;gap:12px;}
  .v2-app .pos-confirm{flex:1 1 100%;justify-content:center;}
  .v2-app .ord-print-acts{flex-direction:column;}

  /* ── Perfil ── */
  .v2-app .pf-bottom{grid-template-columns:1fr;flex:none;overflow:visible;}
  .v2-app .pf-banner{flex-wrap:wrap;padding:16px;gap:14px;}
  .v2-app .pf-bname{font-size:24px;}
  .v2-app .pf-bstats{width:100%;overflow-x:auto;}
  .v2-app .pf-formtop{flex-direction:column;align-items:center;gap:16px;}
  .v2-app .pf-fields{grid-template-columns:1fr;width:100%;}
  .v2-app .pf-specgrid{grid-template-columns:1fr 1fr;gap:16px;}
  .v2-app .pf-secrow{flex-wrap:wrap;}
  .v2-app .pf-secbtn2{width:100%;}

  /* ── Calculadora ── */
  .v2-app .calc-grid{grid-template-columns:1fr;flex:none;}
  .v2-app .calc-left{overflow:visible;}
  .v2-app .calc-row2{grid-template-columns:1fr;}
  .v2-app .calc-pdf{min-height:420px;}
  .v2-app .calc-pdf-frame{min-height:360px;}

  /* ── Modales a lo ancho (el width inline de algunos pay-modal obliga el !important) ── */
  .v2-app .pay-scrim{padding:10px;}
  .v2-app .pay-modal{width:100% !important;max-height:96%;}
  .v2-app .an-modal,.v2-app .paych-modal{width:100%;max-height:96%;}
}


/* ═══════════════════════════════════════════════════════════════════
   Buscador global (V2GlobalSearch) + pantalla Novedades.
   Fase 1: secciones client-side + productos via products/search.
   Fase 2 (comprobantes por número) espera endpoint de Core → BACK-166.
   ═══════════════════════════════════════════════════════════════════ */

.v2-app .gs-drop{position:absolute;top:calc(100% + 8px);left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 44px rgba(19,33,43,.18);z-index:60;overflow-y:auto;max-height:min(62vh,520px);overscroll-behavior:contain;}
.v2-app .gs-drop::-webkit-scrollbar{width:8px;}
.v2-app .gs-drop::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px;}
.v2-app .gs-group{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:var(--ink-3);padding:10px 14px 7px;background:var(--paper-3);border-bottom:1px solid var(--line-2);position:sticky;top:0;z-index:1;}
.v2-app .gs-opt{display:flex;align-items:center;gap:11px;padding:10px 14px;cursor:pointer;border-bottom:1px solid var(--line-2);}
.v2-app .gs-opt:last-child{border-bottom:none;}
.v2-app .gs-opt:hover{background:#EAF7FE;}
.v2-app .gs-secic{width:34px;height:34px;border-radius:8px;background:var(--sky);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.v2-app .gs-secic .ic{width:16px;height:16px;color:var(--navy);}
.v2-app .gs-txt{min-width:0;flex:1;}
.v2-app .gs-name{font-size:13.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.v2-app .gs-meta{font-size:11.5px;color:var(--ink-3);font-family:'JetBrains Mono',monospace;margin-top:2px;}
.v2-app .gs-go{width:14px;height:14px;color:var(--ink-3);flex-shrink:0;}
.v2-app .gs-note{padding:12px 14px;font-size:12.5px;color:var(--ink-3);}

/* Lupita del topbar mobile: invisible fuera de la banda <700. */
.v2-app .m-search-btn{display:none;}

/* Pantalla Novedades: columna scrolleable dentro del content de alto fijo. */
.v2-app .nv-wrap{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:16px;max-width:920px;padding-right:6px;}
.v2-app .nv-wrap::-webkit-scrollbar{width:8px;}
.v2-app .nv-wrap::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px;}
.v2-app .nv-wrap .sec-head{margin-bottom:0;}
.v2-app .nv-news{flex:none;overflow:visible;}

/* Novedad clickeable (estados de pedido / pagos): affordance sutil. */
.v2-app .news-item--link{cursor:pointer;transition:background .15s;}
.v2-app .news-item--link:hover{background:var(--paper-3);}

/* Banda tablet: la página Novedades scrollea con el content. */
@media (min-width:700px) and (max-width:1365.98px){
  .v2-app .nv-wrap{flex:none;overflow:visible;max-width:none;padding-right:0;}
}

/* Banda mobile: lupita + overlay de búsqueda a pantalla completa. */
@media (max-width:699.98px){
  .v2-app .m-top .m-logo{margin-right:auto;}
  .v2-app .m-search-btn{display:flex;width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:var(--paper-3);align-items:center;justify-content:center;cursor:pointer;margin-right:10px;}
  .v2-app .m-search-btn .ic{width:18px;height:18px;color:var(--ink-2);}

  .v2-app .m-search-ov{position:absolute;inset:0;z-index:70;background:var(--paper);padding:10px;display:flex;flex-direction:column;}
  .v2-app .m-search-head{display:flex;gap:8px;align-items:flex-start;}
  .v2-app .m-search-ov .search{position:static;left:auto;top:auto;transform:none;width:auto;max-width:none;flex:1;}
  .v2-app .m-search-ov .gs-drop{position:fixed;top:64px;left:10px;right:10px;bottom:calc(72px + env(safe-area-inset-bottom,0px));max-height:none;}
  .v2-app .m-search-x{width:42px;height:42px;border-radius:11px;border:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;}
  .v2-app .m-search-x .ic{width:18px;height:18px;color:var(--ink-2);}

  .v2-app .nv-wrap{flex:none;overflow:visible;max-width:none;padding-right:0;}
}


/* Comprobantes en el buscador global (fase 2, BACK-166) */
.v2-app .gs-docic{background:#E7F3EB;}
.v2-app .gs-docic .ic{color:var(--green);}
