:root{--blue:#0b69c7;--blue-dark:#07539e;--navy:#14243a;--bg:#eef3f8;--card:#fff;--line:#d9e2ec;--muted:#637188;--green:#0a9b61;--red:#c63f4a;--shadow:0 10px 28px rgba(25,54,90,.12);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:#162033;background:var(--bg);font-variant-numeric:tabular-nums}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;min-height:100%;overscroll-behavior:none}body{background:var(--bg);touch-action:manipulation}.hidden{display:none!important}button,input{font:inherit}button{cursor:pointer;touch-action:manipulation}.app{min-height:100dvh;padding:calc(62px + env(safe-area-inset-top)) 12px calc(14px + env(safe-area-inset-bottom));max-width:520px;margin:auto}.app-header{position:fixed;z-index:20;top:0;left:50%;transform:translateX(-50%);width:min(100%,520px);height:calc(58px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 12px 0;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line)}.header-brand{display:flex;align-items:center;gap:9px;border:0;background:none;color:var(--navy);font-size:18px;font-weight:850;padding:5px}.mini-mark,.brand-mark{display:grid;place-items:center;background:linear-gradient(145deg,var(--blue),#19a0ed);color:#fff;font-weight:900}.mini-mark{width:34px;height:34px;border-radius:10px;font-size:13px}.brand-mark{width:68px;height:68px;margin:auto;border-radius:20px;font-size:24px;box-shadow:var(--shadow)}.header-actions{display:flex;align-items:center;gap:5px}.icon-btn{width:44px;height:44px;border:0;border-radius:12px;background:transparent;color:var(--navy);font-size:25px;font-weight:800}.icon-btn:active,.key:active{transform:scale(.96)}.icon-btn.bordered{border:1px solid var(--line);background:#fff}.online-dot{width:10px;height:10px;border-radius:50%;background:#98a5b6;box-shadow:0 0 0 3px #98a5b622}.online-dot.online{background:#17a66b;box-shadow:0 0 0 3px #17a66b22}.menu-panel{position:fixed;z-index:25;top:calc(56px + env(safe-area-inset-top));right:max(12px,calc((100vw - 520px)/2 + 12px));width:min(310px,calc(100vw - 24px));display:grid;gap:9px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 16px 42px #17294436}.menu-panel span{color:var(--muted);font-size:14px}.menu-panel button{min-height:46px;text-align:left;border:0;border-radius:10px;padding:10px 12px;background:#edf4fb;font-weight:750;color:var(--navy)}.menu-panel .danger-link{color:var(--red);background:#fff0f1}.screen{animation:appear .16s ease-out}@keyframes appear{from{opacity:.4;transform:translateY(4px)}}.display-card{background:var(--navy);color:#fff;border-radius:18px;padding:17px 18px 15px;min-height:140px;box-shadow:var(--shadow);display:flex;flex-direction:column;justify-content:flex-end}.expression-display{min-height:47px;max-height:72px;overflow:auto;text-align:right;color:#d7e2ef;font-size:22px;line-height:1.35;overflow-wrap:anywhere}.total-label{text-align:right;color:#aabbd0;font-size:12px;font-weight:800;letter-spacing:.15em;margin-top:6px}.total-display{text-align:right;font-size:43px;line-height:1.04;font-weight:900}.keypad{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(5,minmax(61px,1fr));gap:8px;margin-top:10px;height:calc(100dvh - 228px - env(safe-area-inset-top) - env(safe-area-inset-bottom));min-height:360px;max-height:590px}.key{border:1px solid #d8e1eb;background:#fff;border-radius:15px;font-weight:850;font-size:27px;color:var(--navy);box-shadow:0 2px 4px #1b395012}.key.operator{color:var(--blue);background:#e8f3ff;font-size:30px}.key.utility{color:#566579;background:#e8edf3;font-size:23px}.key.zero{grid-column:span 2}.charge-btn{grid-column:span 2;border:0;border-radius:15px;background:var(--green);color:#fff;font-size:21px;font-weight:900;letter-spacing:.04em;box-shadow:0 6px 16px #0a9b6135}.charge-btn:disabled{background:#9db5aa}.summary-total{background:var(--navy);border-radius:18px;color:#fff;padding:20px;text-align:center;display:flex;justify-content:center;align-items:baseline;gap:14px}.summary-total span{color:#b4c4d8;font-weight:800}.summary-total strong{font-size:38px}.screen h2{font-size:21px;margin:20px 2px 12px}.denominations{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.denomination-btn{min-height:68px;border:1px solid #b9d6f1;border-radius:14px;background:#fff;color:var(--blue-dark);font-size:23px;font-weight:900}.denomination-btn.exact{grid-column:1/-1;background:#dff5ea;color:#08794c;border-color:#a8dec5}.primary,.secondary{border:0;border-radius:14px;font-weight:900}.primary{background:var(--blue);color:#fff}.secondary{background:#fff;color:var(--blue-dark);border:2px solid #bad4ee}.tall{width:100%;min-height:57px;margin-top:10px}.text-btn{width:100%;min-height:50px;border:0;background:none;color:var(--muted);font-weight:750;margin-top:4px}.custom-amount{background:#fff;border:1px solid var(--line);border-radius:16px;padding:10px;margin-top:10px}.received-input{height:62px;display:flex;justify-content:flex-end;align-items:center;padding:0 12px;border-radius:11px;background:#eef3f8;font-weight:900;font-size:31px;color:var(--navy)}.payment-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:8px}.payment-keypad button{min-height:52px;border:1px solid var(--line);background:#fff;border-radius:11px;font-weight:850;font-size:22px}.change-summary{display:grid;gap:9px}.change-summary>div{background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px 18px;display:flex;align-items:baseline;justify-content:space-between}.change-summary span{font-weight:800;color:var(--muted);font-size:14px;letter-spacing:.05em}.change-summary strong{font-size:27px}.change-summary .change-hero{min-height:188px;display:flex;flex-direction:column;justify-content:center;align-items:center;background:linear-gradient(150deg,#087f50,#10ad6f);color:#fff;border:0;box-shadow:0 12px 27px #0a8e5c38}.change-summary .change-hero span{color:#d4ffea;font-size:17px}.change-summary .change-hero strong{font-size:64px;line-height:1.08;max-width:100%;overflow-wrap:anywhere;text-align:center}.delivered-btn{width:100%;min-height:76px;margin-top:12px;border:0;border-radius:16px;background:var(--blue);color:#fff;font-size:24px;font-weight:950;box-shadow:0 8px 20px #0b69c738}.delivered-btn:disabled{background:#8b9bac}.save-status{text-align:center;color:var(--red);min-height:20px;font-weight:700}.section-heading{display:flex;justify-content:space-between;align-items:center}.section-heading h2{margin:8px 0 2px}.section-heading p{margin:0;color:var(--muted)}.history-list{display:grid;gap:9px;margin:16px 0;max-height:calc(100dvh - 220px);overflow:auto}.history-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px}.history-card header{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}.history-card header strong{color:var(--blue-dark);font-size:14px}.history-card header time{font-size:15px;font-weight:850}.history-values{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.history-values span{display:block;color:var(--muted);font-size:11px;font-weight:750}.history-values strong{display:block;margin-top:2px;font-size:17px}.history-meta{margin-top:8px;color:var(--muted);font-size:12px}.empty-state{text-align:center;padding:45px 15px;color:var(--muted);background:#fff;border-radius:15px}.auth-view{min-height:100dvh;display:grid;place-items:center;padding:20px;background:linear-gradient(160deg,#e8f2fb,#f8fbfd)}.auth-card{width:min(100%,390px);background:#fff;border-radius:22px;padding:28px;box-shadow:var(--shadow)}.auth-card h1{text-align:center;margin:15px 0 4px}.auth-card>p{text-align:center;color:var(--muted);margin:0 0 24px}.auth-card label,.modal-card label{display:block;font-weight:800;margin:13px 0 6px}.auth-card input,.modal-card input{width:100%;height:53px;border:1px solid #b8c6d6;border-radius:11px;padding:0 13px;font-size:18px}.form-error{min-height:22px;color:var(--red);font-weight:700;text-align:center}.modal{position:fixed;z-index:40;inset:0;display:grid;place-items:center;padding:18px;background:#0b1726c9}.modal-card{width:min(100%,430px);background:#fff;border-radius:19px;padding:24px;box-shadow:var(--shadow)}.modal-card h2{margin:0 0 8px}.modal-card p,.modal-card small{color:var(--muted)}.toast{position:fixed;z-index:100;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));transform:translate(-50%,20px);background:#15253a;color:#fff;border-radius:12px;padding:12px 17px;max-width:calc(100vw - 28px);opacity:0;pointer-events:none;transition:.2s;font-weight:700;text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}
@media (max-height:680px){.app{padding-top:calc(58px + env(safe-area-inset-top))}.display-card{min-height:112px;padding:12px 16px}.expression-display{min-height:34px;font-size:18px}.total-display{font-size:35px}.keypad{height:calc(100dvh - 190px - env(safe-area-inset-top) - env(safe-area-inset-bottom));min-height:325px;gap:6px}.key{border-radius:12px}.change-summary .change-hero{min-height:145px}.change-summary .change-hero strong{font-size:53px}}
@media (min-width:700px){body{background:#dfe8f1}.app-header{border-left:1px solid var(--line);border-right:1px solid var(--line)}.app{background:var(--bg);box-shadow:0 0 45px #15243a20;min-height:100dvh}.denominations{grid-template-columns:repeat(3,1fr)}.denomination-btn.exact{grid-column:1/-1}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}


/* V1.2 */
.login-hint{display:block;margin-top:10px;color:#66778b;font-size:.82rem;line-height:1.35}
.menu-panel .test-toggle{display:flex;align-items:center;gap:10px;padding:10px 2px;font-weight:700}
.menu-panel .test-toggle input{width:20px;height:20px}
.menu-note{display:block;color:#6b7a8c;line-height:1.3;margin:-4px 0 8px}
.test-badge{display:inline-block;padding:2px 7px;border-radius:999px;background:#fff1b8;color:#735b00;font-size:.7rem;font-weight:800;margin-left:7px}
body.test-mode .app-header{box-shadow:inset 0 -3px 0 #e3a400}
body.test-mode .header-brand::after{content:'PRUEBAS';font-size:.65rem;font-weight:900;background:#fff1b8;color:#735b00;padding:2px 6px;border-radius:999px;margin-left:7px}

/* V1.3 - movimientos, cortes y analitica */
.field-label{display:block;font-weight:800;margin:15px 2px 6px}.big-input{width:100%;min-height:55px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px 13px;font-size:18px;color:var(--navy)}.movement-type,.range-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.movement-type button,.range-tabs button{min-height:48px;border:1px solid var(--line);border-radius:12px;background:#fff;font-weight:850;color:var(--navy)}.movement-type button.selected,.range-tabs button.selected{background:var(--blue);color:#fff;border-color:var(--blue)}.range-tabs{grid-template-columns:repeat(4,1fr);gap:5px}.range-tabs button{font-size:12px;padding:4px}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.stats-grid>div{background:#fff;border:1px solid var(--line);border-radius:13px;padding:12px}.stats-grid span{display:block;color:var(--muted);font-size:10px;font-weight:850}.stats-grid strong{display:block;margin-top:4px;font-size:21px}.chart-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px;margin-top:12px}.chart-card h3{margin:0 0 12px}.bar-chart{display:grid;gap:7px;max-height:310px;overflow:auto}.bar-row{display:grid;grid-template-columns:52px 1fr 82px;align-items:center;gap:7px;font-size:11px}.bar-track{height:16px;background:#e9eef4;border-radius:8px;overflow:hidden}.bar-track i{display:block;height:100%;background:var(--blue);border-radius:8px}.bar-row strong{text-align:right;font-size:11px}.cuts-list{display:grid;gap:8px}.cut-row{border-bottom:1px solid var(--line);padding:7px 0}.cut-row:last-child{border:0}.cut-row strong,.cut-row span{display:block}.cut-row span{font-size:11px;color:var(--muted);margin-top:3px}.analytics-actions{margin-top:10px}

/* V1.4 - identidad, resumen, reportes y seguridad */
.brand-logo{display:block;width:76px;height:76px;margin:0 auto}.mini-logo{width:36px;height:36px;display:block;flex:0 0 auto}.today-sales-card{width:100%;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:2px 12px;align-items:center;text-align:left;border:1px solid #c8dbef;background:#fff;border-radius:14px;padding:10px 14px;margin-bottom:9px;color:var(--navy);box-shadow:0 3px 9px #19364a10}.today-sales-card span{font-size:10px;font-weight:900;color:var(--muted);letter-spacing:.08em}.today-sales-card strong{grid-row:1/3;grid-column:2;font-size:22px;color:var(--blue-dark)}.today-sales-card small{font-size:11px;color:var(--muted)}.today-menu-summary{display:grid;grid-template-columns:1fr auto;gap:2px 8px;padding:10px 12px;border-radius:10px;background:#f3f8fd;border:1px solid #d7e7f6}.today-menu-summary span{font-size:11px}.today-menu-summary strong{font-size:18px;color:var(--blue-dark)}.today-menu-summary small{grid-column:1/-1;color:var(--muted)}.report-options>label{display:flex;align-items:center;gap:10px;margin:0;padding:9px 0;border-bottom:1px solid var(--line);font-weight:700}.report-options>label input{width:20px;height:20px;flex:0 0 auto}.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.danger-solid{border:0;border-radius:14px;background:var(--red);color:#fff;font-weight:900}.void-sale-btn{width:100%;margin-top:10px;min-height:40px;border:1px solid #ecc4c7;background:#fff5f5;color:var(--red);border-radius:10px;font-weight:850}.history-card.voided{opacity:.7;background:#f3f3f3}.void-badge{display:inline-block;padding:2px 7px;border-radius:999px;background:#ffe0e2;color:#9c2730;font-size:.7rem;font-weight:900;margin-left:7px}.security-note{display:block;color:var(--muted);line-height:1.35;margin:4px 4px 12px}.modal-card select{width:100%}
@media (max-height:680px){.today-sales-card{padding:7px 12px;margin-bottom:6px}.today-sales-card strong{font-size:19px}.keypad{height:calc(100dvh - 228px - env(safe-area-inset-top) - env(safe-area-inset-bottom));}}

/* v1.4.1 UI hotfixes */
.compact-icon{width:38px;height:38px;padding:8px}.compact-icon svg{width:22px;height:22px;display:block;fill:none;stroke:currentColor;stroke-width:1.8}.compact-icon.today-hidden svg{opacity:.45}.menu-backdrop{position:fixed;z-index:24;inset:0;background:transparent}.today-sales-card.banner-hidden{display:none!important}.site-select{position:relative}.site-select-trigger{width:100%;min-height:55px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px 13px;font-size:18px;color:var(--navy);display:flex;align-items:center;justify-content:space-between;text-align:left}.site-select-trigger[aria-expanded="true"]{border-color:var(--blue);box-shadow:0 0 0 3px #0b69c716}.site-select-chevron{font-size:23px;color:var(--muted);line-height:1}.site-select-menu{position:absolute;z-index:35;left:0;right:0;top:calc(100% + 6px);display:grid;max-height:min(340px,55vh);overflow:auto;background:#fff;border:1px solid var(--line);border-radius:14px;padding:6px;box-shadow:0 14px 34px #1729442e}.site-select-menu button{min-height:46px;border:0;border-radius:9px;background:#fff;text-align:left;padding:10px 12px;color:var(--navy);font-weight:700}.site-select-menu button:hover,.site-select-menu button:focus{background:#edf4fb;outline:none}.device-actions{margin-top:12px}.modal-card .device-actions .tall{margin-top:0}


/* v1.4.5 - vibración configurable, entrada táctil inmediata y confirmación visual */
.menu-accordion{display:grid;gap:7px}.menu-group{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}.menu-panel .menu-group-toggle{width:100%;min-height:46px;display:flex;align-items:center;justify-content:space-between;background:#f4f8fc;border-radius:0;padding:10px 12px}.menu-group-toggle[aria-expanded="true"]{background:#e8f3ff;color:var(--blue-dark)}.menu-chevron{font-size:20px!important;line-height:1;color:var(--muted)!important;transition:transform .16s ease}.menu-group-toggle[aria-expanded="true"] .menu-chevron{transform:rotate(180deg)}.menu-group-content{display:grid;gap:6px;padding:7px;border-top:1px solid var(--line)}.menu-panel .menu-group-content>button{background:#fff;border:1px solid #e1e8f0}.menu-panel .menu-group-content>button:active{background:#edf4fb}.menu-switch{display:flex;align-items:center;gap:10px;padding:9px 4px;font-weight:750;color:var(--navy)}.menu-switch input{width:20px;height:20px;flex:0 0 auto}.menu-switch span{color:var(--navy);font-size:14px}.menu-switch input:disabled+span{opacity:.55}.menu-group-content .menu-note{margin:0 4px 5px}.menu-panel{max-height:calc(100dvh - 78px - env(safe-area-inset-top));overflow:auto;align-content:start}.menu-panel>.today-menu-summary{margin-bottom:1px}

/* v1.4.4: confirmación visual inmediata del toque */
.key.key-pressed,.charge-btn.key-pressed,.delivered-btn.key-pressed,.modal button.key-pressed,.payment-keypad button.key-pressed{transform:scale(.96);filter:brightness(.91);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--blue) 75%,transparent),0 1px 2px #1b395012}
.menu-subaction{margin-top:6px;background:#fff!important;border:1px solid var(--line)!important;color:var(--blue-dark)!important;text-align:center!important}
.menu-panel a.menu-subaction{display:block;padding:12px;border-radius:10px;text-decoration:none;font-weight:800}


/* v1.4.5 - fuerza de vibración configurable por dispositivo */
.haptic-strength{padding:7px 4px 9px}.haptic-strength-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:7px}.haptic-strength-head span{color:var(--navy);font-weight:750;font-size:14px}.haptic-strength-head strong{color:var(--blue-dark);font-size:13px}.haptic-strength input[type="range"]{width:100%;accent-color:var(--blue);height:32px;margin:0}.haptic-strength input[type="range"]:disabled{opacity:.45}.haptic-strength-scale{display:flex;justify-content:space-between;margin-top:-2px}.haptic-strength-scale span{font-size:10px;color:var(--muted)}


/* v1.4.7 - aprobaciones remotas y avisos */
.menu-icon-with-badge{position:relative}.approval-badge{position:absolute;right:-2px;top:-3px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#d92f3b;color:#fff;border:2px solid #fff;font-size:10px;font-weight:900;display:grid;place-items:center;line-height:1}.approval-inline-badge{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#d92f3b;color:#fff;font-size:11px;font-weight:900;margin-left:auto}.approval-menu-btn{display:flex!important;align-items:center;gap:8px}.approval-section{margin-bottom:16px}.approval-section h3{margin:0 0 9px;font-size:15px}.approval-list{display:grid;gap:9px}.approval-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px}.approval-card header{display:flex;align-items:center;justify-content:space-between;gap:10px}.approval-card header strong{font-size:15px}.approval-card header>span{font-weight:900;color:var(--blue-dark)}.approval-card p{margin:8px 0 5px;font-size:14px}.approval-card small{display:block;color:var(--muted);margin-top:4px}.approval-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.approval-actions button{min-height:46px;border-radius:11px;font-weight:900}.approval-status{padding:4px 8px;border-radius:999px;font-size:11px}.status-pending{background:#fff1b8;color:#705700!important}.status-approved{background:#dff6e8;color:#18713a!important}.status-rejected,.status-expired{background:#ffe5e7;color:#a12b35!important}.empty-approval{margin:0;padding:16px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);text-align:center}.approval-card.compact p{margin-bottom:2px}

/* V1.4.7 - aprobaciones visibles en menú */
.menu-group-title{display:flex;align-items:center;gap:8px;min-width:0}.approval-group-badge{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:#d51f32;color:#fff!important;border:2px solid #fff;box-shadow:0 0 0 1px #a91625;font-size:11px;font-weight:950;line-height:1}.menu-group-toggle[aria-expanded="true"] .approval-group-badge{background:#c91529;color:#fff!important;border-color:#fff}.approval-menu-btn .approval-inline-badge{background:#c91529;color:#fff!important;border:2px solid #fff;box-shadow:0 0 0 1px #a91625}.approval-menu-btn{font-weight:850!important}.approval-menu-btn.approval-attention{animation:approvalPulse .6s ease 2;background:#fff1f3!important;border-color:#d51f32!important}@keyframes approvalPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.015)}}

/* Acción secundaria de la pantalla de cambio: distingue "Agregar artículo" sin competir con Entregado. */
.add-item-btn{border:0;border-radius:14px;background:#3f7f8c;color:#fff;font-weight:900;box-shadow:0 4px 12px rgba(63,127,140,.22)}
.add-item-btn:active{transform:scale(.985);background:#376f7a}

/* v1.4.10 - botones principales de pago ligeramente más grandes */
.denomination-btn.exact{min-height:78px;font-size:24px}
.delivered-btn{min-height:86px;font-size:25px}

/* v1.4.11 · cobro manual y confirmación de pago exacto */
.manual-amount-trigger{width:100%;min-height:82px;margin:4px 0 10px;border:2px solid #bfd3e8;border-radius:15px;background:#fff;color:var(--navy);display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;align-items:center;text-align:left;padding:11px 15px;transition:.16s}.manual-amount-trigger span{font-size:12px;font-weight:900;color:var(--muted);letter-spacing:.05em}.manual-amount-trigger strong{grid-row:1/3;grid-column:2;font-size:29px;color:var(--blue-dark)}.manual-amount-trigger small{font-size:12px;color:var(--muted)}.manual-amount-trigger.active{border-color:var(--blue);background:#f3f8fd;box-shadow:0 0 0 3px #0b69c712}.denomination-btn:disabled{opacity:.38;filter:grayscale(.35);box-shadow:none}.custom-amount{margin:0 0 11px;padding:10px;border:1px solid var(--line);border-radius:15px;background:#f7fafc}.custom-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.custom-actions .tall{margin-top:8px}.exact-payment-card{text-align:center}.exact-payment-card h2{margin-bottom:4px}.exact-payment-card p{margin:8px 0}.exact-payment-total{display:block;font-size:42px;line-height:1.15;color:var(--blue-dark);margin:10px 0 14px}


/* V1.4.13 - resumen configurable por turnos */
.shift-card{display:grid;gap:14px}.shift-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.shift-head h3{margin:0 0 4px}.shift-head p{margin:0;color:var(--muted,#667085);font-size:.9rem}.shift-switch{display:flex;align-items:center;gap:8px;font-weight:700;white-space:nowrap}.shift-switch input{width:20px;height:20px}.shift-settings{display:grid;gap:12px;padding-top:2px}.shift-time-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.shift-time-grid label{display:grid;gap:6px;font-size:.82rem;font-weight:700;color:var(--muted,#667085)}.shift-time-grid input{width:100%;min-height:46px;border:1px solid #cbd5e1;border-radius:10px;padding:8px 10px;font:inherit;background:var(--surface,#fff);color:inherit}.shift-save{width:100%}.shift-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.shift-summary>div{border:1px solid #dbe3ec;border-radius:12px;padding:12px;display:grid;gap:4px;background:rgba(255,255,255,.03)}.shift-summary span{font-size:.72rem;font-weight:800;letter-spacing:.04em;color:var(--muted,#667085)}.shift-summary strong{font-size:1.35rem}.shift-summary small{color:var(--muted,#667085)}.shift-total{border-style:dashed!important}.hidden{display:none!important}@media(max-width:640px){.shift-head{align-items:center}.shift-head p{display:none}.shift-time-grid{grid-template-columns:1fr 1fr}.shift-summary{grid-template-columns:1fr 1fr}.shift-summary .shift-total{grid-column:1/-1}.shift-summary strong{font-size:1.2rem}}
.shift-admin-list{display:grid;gap:8px}.shift-admin-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #dbe3ec;border-radius:12px;padding:11px 12px}.shift-admin-row>div:first-child{display:grid;gap:3px}.shift-admin-row small{color:var(--muted,#667085)}.shift-admin-row.inactive{opacity:.7}.shift-row-actions,.shift-editor-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.shift-row-actions .text-btn{margin:0;padding:6px}.danger-text{color:#b42318!important}.shift-settings>label{display:grid;gap:6px;font-size:.82rem;font-weight:700;color:var(--muted,#667085)}.shift-settings>label input{min-height:46px;border:1px solid #cbd5e1;border-radius:10px;padding:8px 10px;font:inherit;background:var(--surface,#fff);color:inherit}.shift-group-title{grid-column:1/-1;margin:6px 0 0;font-size:.78rem;color:var(--muted,#667085);text-transform:uppercase;letter-spacing:.04em}@media(max-width:640px){.shift-admin-row{align-items:flex-start;flex-direction:column}.shift-row-actions{justify-content:flex-start}}

/* V1.4.14 - concurrencia por hora */
.hourly-card{overflow:hidden}.hourly-head h3{margin:0 0 4px}.hourly-head p{margin:0;color:var(--muted,#667085);font-size:.86rem}.hourly-chart{display:grid;grid-template-columns:repeat(var(--hour-count,16),minmax(18px,1fr));gap:6px;align-items:end;min-height:205px;padding:18px 2px 4px}.hour-bar{appearance:none;border:0;background:transparent;padding:0;display:grid;grid-template-rows:24px 138px 24px;align-items:end;min-width:0;color:inherit;cursor:pointer}.hour-count{align-self:center;text-align:center;font-size:.78rem;font-weight:700;color:var(--navy)}.hour-bar-track{height:138px;display:flex;align-items:flex-end;justify-content:center;background:transparent;border:0;border-bottom:1px solid #e2e8f0;overflow:visible}.hour-bar-track i{display:block;width:9px;max-width:55%;min-height:3px;background:#f59e0b;border-radius:4px 4px 1px 1px;transition:height .18s ease,width .18s ease,opacity .18s ease;opacity:.88}.hour-label{text-align:center;font-size:.68rem;font-weight:600;color:var(--muted,#667085);padding-top:5px}.hour-bar:hover .hour-bar-track i,.hour-bar.selected .hour-bar-track i{width:11px;opacity:1}.hour-bar.selected .hour-bar-track{border-bottom-color:#f59e0b}.hourly-detail{margin-top:9px;padding:9px 10px;border-radius:10px;background:#f5f8fb;color:var(--muted,#667085);font-size:.82rem;font-weight:700;text-align:center}@media(max-width:640px){.hourly-card{padding-left:8px;padding-right:8px}.hourly-chart{gap:2px;overflow-x:auto;grid-template-columns:repeat(var(--hour-count,16),minmax(24px,1fr))}.hour-bar{grid-template-rows:22px 128px 22px}.hour-bar-track{height:128px}.hour-bar-track i{width:7px}.hour-bar:hover .hour-bar-track i,.hour-bar.selected .hour-bar-track i{width:9px}.hour-count{font-size:.7rem}.hour-label{font-size:.6rem}.hourly-head p{font-size:.8rem}}

/* V1.4.15 - ticket en imagen y compartir por WhatsApp */
.sale-complete-card{text-align:center}.sale-complete-check{width:58px;height:58px;margin:0 auto 10px;border-radius:50%;display:grid;place-items:center;background:#e2f7eb;color:#11824f;font-size:32px;font-weight:950}.sale-complete-card h2{margin-bottom:4px}.sale-complete-folio{display:block;color:var(--muted);font-size:13px;margin-bottom:14px}.sale-complete-summary{display:grid;grid-template-columns:1fr auto;gap:8px 16px;align-items:baseline;text-align:left;padding:14px;border:1px solid var(--line);border-radius:13px;background:#f8fafc}.sale-complete-summary span{color:var(--muted);font-weight:800}.sale-complete-summary strong{text-align:right;font-size:21px;color:var(--navy)}.sale-complete-card>p{font-size:13px;margin:12px 0 4px}.whatsapp-share-btn,.history-share-btn{display:flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;background:#1fa855;color:#fff;font-weight:900}.whatsapp-share-btn{width:100%;min-height:58px}.whatsapp-icon{width:22px;height:22px;display:inline-grid;place-items:center;flex:0 0 auto}.whatsapp-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.history-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.history-actions .void-sale-btn{margin-top:0}.history-share-btn{min-height:40px;font-size:13px}.history-card.voided .history-actions{grid-template-columns:1fr}.history-card.voided .history-actions:empty{display:none}@media(max-width:420px){.history-actions{grid-template-columns:1fr}.history-share-btn,.history-actions .void-sale-btn{min-height:44px}}

/* v2.1.5 · búsqueda de folios independientes */
.history-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin:0 0 12px}.history-search input{min-width:0;min-height:46px;border:1px solid var(--line);border-radius:12px;padding:0 13px;background:#fff;color:var(--navy);font:inherit}.history-search input:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 3px rgba(11,105,199,.11)}.history-search button{min-height:46px;border:0;border-radius:12px;padding:0 15px;background:var(--blue);color:#fff;font-weight:900}@media(max-width:420px){.history-search{grid-template-columns:1fr}.history-search button{min-height:42px}}

/* v2.2.0 · Inicio del negocio + menú móvil */
.menu-panel{
  top:calc(58px + env(safe-area-inset-top))!important;
  bottom:0!important;
  height:auto!important;
  max-height:none!important;
  overflow-y:auto!important;
  border-radius:0!important;
  border-top:0!important;
  padding-bottom:calc(22px + env(safe-area-inset-bottom))!important;
}
.menu-panel button,.menu-group,.menu-group-toggle,.menu-group-content button,.today-menu-summary{
  border-radius:6px!important;
}
.menu-panel>strong{font-weight:500!important;text-transform:none}
.menu-group-toggle,.menu-group-content button{font-weight:500!important}

.home-screen{padding:4px 0 18px}
.home-welcome{padding:15px 5px 14px}
.home-kicker{font-size:11px;letter-spacing:.12em;color:var(--blue);font-weight:700}
.home-welcome h1{margin:4px 0 2px;font-size:25px;line-height:1.15;font-weight:650;color:var(--navy)}
.home-welcome p{margin:0;color:var(--muted);font-size:14px}
.home-app-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.home-app-tile{
  position:relative;min-width:0;min-height:126px;padding:13px 8px 10px;
  display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:5px;
  border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--navy);
  box-shadow:0 5px 14px rgba(25,54,90,.06);text-align:center;
}
.home-app-tile .home-app-icon{
  width:48px;height:48px;display:grid;place-items:center;border-radius:12px;
  background:#eaf4ff;color:var(--blue);font-size:23px;font-weight:500;
}
.home-app-tile strong{font-size:14px;font-weight:600;line-height:1.1}
.home-app-tile small{font-size:10.5px;line-height:1.2;color:var(--muted);font-weight:400}
.home-app-tile.enabled:active{transform:scale(.97)}
.home-app-tile.disabled{opacity:.48;box-shadow:none;background:#f4f6f8;cursor:not-allowed}
.home-app-tile.disabled .home-app-icon{background:#e6e9ed;color:#7b8794}
.home-app-tile.disabled::after{
  content:"";position:absolute;right:8px;top:8px;width:8px;height:8px;border-radius:50%;background:#9aa6b2
}
.home-disabled-note{margin:14px 5px 0;color:var(--muted);font-size:11px;line-height:1.35;text-align:center}
.camera-permission-card{margin:0 5px 14px;padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;box-shadow:0 4px 12px rgba(25,54,90,.05)}
.camera-permission-card.hidden{display:none}.camera-permission-icon{width:38px;height:38px;border-radius:8px;display:grid;place-items:center;background:color-mix(in srgb,var(--blue) 10%,var(--card));color:var(--blue)}.camera-permission-icon .fa-camera-icon{width:20px;height:20px;fill:currentColor;stroke:none}.camera-permission-copy{min-width:0}.camera-permission-copy strong{display:block;color:var(--navy);font-size:14px;font-weight:650}.camera-permission-copy p{margin:2px 0;color:var(--muted);font-size:12px;line-height:1.35}.camera-permission-copy small{display:block;color:var(--muted);font-size:10px;overflow-wrap:anywhere}.camera-permission-card .secondary-action{min-height:38px;padding:7px 11px;white-space:nowrap}
.camera-permission-card.is-blocked,.camera-permission-card.is-error{border-color:color-mix(in srgb,var(--blue) 38%,var(--line))}

@media(max-width:380px){
 .home-app-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .home-app-tile{min-height:116px}
}
@media(max-width:560px){.camera-permission-card{grid-template-columns:36px minmax(0,1fr)}.camera-permission-card .secondary-action{grid-column:1/-1;width:100%}}
.cash-redtotal-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:8px 0 10px}.cash-redtotal-shortcut{min-width:0;margin:0;padding:9px 10px;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;border:1px solid color-mix(in srgb,var(--blue) 24%,var(--line));border-radius:9px;background:color-mix(in srgb,var(--blue) 5%,var(--card));color:var(--navy);text-align:left;font:inherit}.cash-redtotal-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:8px;background:color-mix(in srgb,var(--blue) 12%,var(--card));color:var(--blue)}.cash-redtotal-icon .fa-inline-svg{width:17px;height:17px}.cash-redtotal-shortcut strong,.cash-redtotal-shortcut small{display:block;overflow-wrap:anywhere}.cash-redtotal-shortcut strong{font-size:12px;line-height:1.25}.cash-redtotal-shortcut small{margin-top:2px;color:var(--muted);font-size:9px;line-height:1.3}.cash-redtotal-shortcut b{color:var(--blue);font-size:17px}.cash-redtotal-shortcut:disabled{cursor:not-allowed;opacity:.58}.cash-redtotal-shortcut.is-coming-soon{border-color:var(--line);background:color-mix(in srgb,var(--muted) 5%,var(--card))}.cash-redtotal-shortcut.is-coming-soon .cash-redtotal-icon{background:color-mix(in srgb,var(--muted) 10%,var(--card));color:var(--muted)}.cash-redtotal-shortcut.is-coming-soon b{color:var(--muted)}
@media(max-width:430px){.cash-redtotal-actions{gap:6px}.cash-redtotal-shortcut{grid-template-columns:30px minmax(0,1fr);gap:7px;padding:8px}.cash-redtotal-icon{width:30px;height:30px}.cash-redtotal-shortcut>b{display:none}.cash-redtotal-shortcut strong{font-size:11px}.cash-redtotal-shortcut small{font-size:8.5px}}

/* v2.2.1 · Identidad de usuario + categorías de movimientos */
.menu-user-card{
  display:flex;align-items:center;gap:11px;padding:2px 0 4px;
}
.menu-user-avatar{
  flex:0 0 38px;width:38px;height:38px;border-radius:50%;
  display:grid;place-items:center;background:#e8f3ff;color:var(--blue);
  border:1px solid #c9def3;font-size:16px;font-weight:650;
}
.menu-user-copy{min-width:0;display:flex;flex-direction:column;gap:2px}
.menu-user-copy strong{font-size:16px;font-weight:500!important;color:var(--navy)}
.menu-user-copy span{font-size:12px;color:var(--muted)}

.movement-add-category{
  width:100%;min-height:44px;margin-top:9px;padding:8px 12px;
  display:flex;align-items:center;justify-content:center;gap:8px;
  border:1px dashed #a9bfd4!important;border-radius:7px!important;
  background:#f7fbff!important;color:#45647f!important;
  font-weight:500!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.6);
}
.movement-add-category:hover{background:#eef7ff!important;border-color:#7fa6c8!important}
.movement-add-plus{
  width:24px;height:24px;border-radius:6px;display:grid;place-items:center;
  background:#e5f2ff;color:var(--blue);font-size:18px;line-height:1;
}
.movement-add-category-box{
  margin-top:8px;padding:11px;border:1px solid var(--line);border-radius:7px;background:#fff;
}
.movement-add-category-box label{display:block;margin-bottom:6px;font-weight:500}
.movement-add-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}
.movement-add-row input{min-width:0}
.movement-add-save{
  border:1px solid #bdd5ea!important;border-radius:6px!important;
  background:#edf6ff!important;color:#0b5fae!important;font-weight:500!important;padding:0 13px!important;
}
.movement-add-category-box small{display:block;margin-top:6px;color:var(--muted);font-size:11px}

@media(max-width:380px){
  .movement-add-row{grid-template-columns:1fr}
  .movement-add-save{min-height:42px}
}

/* v2.2.2 · Header de Caja: estado sobre logo, ventas e Inicio */
.header-brand{position:relative}
.brand-online-dot{
  position:absolute;right:-2px;top:3px;width:10px;height:10px;border-radius:50%;
  background:#20ad67;border:2px solid #fff;box-shadow:0 0 0 1px rgba(32,173,103,.18);
  z-index:3;
}
.brand-online-dot.offline{background:#d94b4b}
.header-outline-icon{position:relative;display:block;width:22px;height:22px;color:currentColor}
.header-receipt-icon{
  width:17px;height:21px;border:2px solid currentColor;border-radius:1px;box-sizing:border-box;
}
.header-receipt-icon i{
  position:absolute;left:3px;right:3px;height:1.5px;background:currentColor;border-radius:1px;
}
.header-receipt-icon i:nth-child(1){top:5px}.header-receipt-icon i:nth-child(2){top:9px}.header-receipt-icon i:nth-child(3){top:13px}
.header-home-icon::before{
  content:"";position:absolute;width:13px;height:13px;left:4px;top:7px;
  border:2px solid currentColor;border-top:0;border-radius:1px;box-sizing:border-box;
}
.header-home-icon::after{
  content:"";position:absolute;width:12px;height:12px;left:5px;top:2px;
  border-left:2px solid currentColor;border-top:2px solid currentColor;transform:rotate(45deg);
  border-radius:1px 0 0 0;
}

/* v2.2.3 · Corrección del header y estado de conexión */
.brand-online-dot.online{background:#20ad67}
.brand-online-dot.offline{background:#d94b4b}

/* v2.2.4 */
.header-brand{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;grid-template-rows:auto auto!important;column-gap:9px!important;align-items:center!important}
.header-brand .mini-logo{grid-column:1!important;grid-row:1 / span 2!important}
.header-brand #businessName{grid-column:2!important;grid-row:1!important;align-self:end!important;line-height:1.05!important}
.connection-status{grid-column:2!important;grid-row:2!important;align-self:start!important;display:flex!important;align-items:center!important;gap:5px!important;margin-top:3px!important;font-size:9px!important;line-height:1!important;font-weight:400!important;white-space:nowrap!important;color:#668096!important}
.connection-status-dot{width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:#1fac67;box-shadow:0 0 0 2px rgba(31,172,103,.10)}
.connection-status.offline{color:#9b6262!important}.connection-status.offline .connection-status-dot{background:#d94b4b;box-shadow:0 0 0 2px rgba(217,75,75,.10)}
.header-home-svg{width:23px;height:23px;display:block;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* v2.2.5 · Afinar separación nombre / sincronización */
.header-brand{
  row-gap:0!important;
}
.header-brand #businessName{
  line-height:1.08!important;
}
.connection-status{
  margin-top:1px!important;
  transform:translateY(-1px);
}

/* v2.2.6 · Iconografía SVG de módulos de Inicio */
.home-app-icon svg{
  width:27px;height:27px;display:block;
  fill:none;stroke:currentColor;stroke-width:1.65;
  stroke-linecap:round;stroke-linejoin:round;
}
.home-app-tile:not(.enabled) .home-app-icon svg{opacity:.72}

/* v2.2.7 · Categorías SQL por negocio */
.movement-manage-categories{
  width:100%;margin:12px 0 0;padding:12px 14px;border:1px dashed #aebfce;
  border-radius:8px;background:rgba(255,255,255,.42);color:#4f6b80;
  display:flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-weight:600;
}
.movement-manage-categories:hover{background:#f7fbff;border-color:#7fa7c7}
.movement-categories-admin{
  margin-top:10px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fff;
}
.movement-category-admin-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:12px}
.movement-category-admin-head strong{display:block;font-weight:650}
.movement-category-admin-head small{display:block;color:var(--muted);margin-top:2px;font-weight:400}
.movement-category-type-picker{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.movement-category-type-picker button{padding:9px;border:1px solid #c9d7e3;border-radius:6px;background:#f6f9fc;color:#52677a;font-weight:600}
.movement-category-type-picker button.selected{background:#e8f3ff;border-color:#6ba9dd;color:#075fae}
.movement-category-admin-list{display:grid;gap:7px;margin-top:12px}
.movement-category-admin-item{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:9px 10px;border:1px solid #e0e8ef;border-radius:6px;background:#f9fbfd;
}
.movement-category-admin-item>div{display:flex;align-items:center;gap:8px;min-width:0}
.movement-category-admin-item strong{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.movement-category-admin-item.inactive{opacity:.58}
.movement-category-admin-item button{border:1px solid #cbd8e2;border-radius:5px;background:#fff;padding:6px 9px;color:#4f6477}
.movement-category-admin-actions{display:flex!important;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}
.movement-category-admin-actions button.danger{color:#9a3d35;border-color:#e2c2be}
.movement-category-type-badge{font-size:10px;padding:3px 6px;border-radius:4px;background:#eef3f7;color:#52677a}
.movement-category-type-badge.in{background:#e8f7ef;color:#24734b}
.movement-category-type-badge.out{background:#fff1ee;color:#a34a3c}
.movement-category-empty,.movement-category-admin-empty{padding:12px;color:var(--muted);font-size:13px;text-align:center}

/* v2.3.0 · perfil SQL, temas por usuario y administración de usuarios */
:root[data-theme="ocean"]{--blue:#287f9f;--blue-dark:#1d667f;--navy:#173742;--bg:#edf7f9;--card:#fbfeff;--line:#d2e5e9;--muted:#607a82;--green:#34866d}
:root[data-theme="sage"]{--blue:#4f8068;--blue-dark:#39644f;--navy:#253b31;--bg:#eff6f1;--card:#fcfefd;--line:#d7e5db;--muted:#687a6f;--green:#418263}
:root[data-theme="violet"]{--blue:#7564a8;--blue-dark:#5c4d8d;--navy:#312b47;--bg:#f3f0f8;--card:#fdfcff;--line:#dfd9eb;--muted:#756f83;--green:#4d8875}
:root[data-theme="sand"]{--blue:#a06f42;--blue-dark:#805630;--navy:#453529;--bg:#f8f2e9;--card:#fffdf9;--line:#e8dccb;--muted:#7b7064;--green:#63805a}
:root[data-theme="slate"]{--blue:#5d7084;--blue-dark:#46586a;--navy:#27333e;--bg:#eef2f5;--card:#fcfdfe;--line:#d8e0e6;--muted:#697782;--green:#4f7d6d}
.app-header,.home-app-tile,.profile-card,.compact-form-card,.business-user-card,.legal-card,.site-select-trigger,.site-select-menu{background:var(--card)}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.profile-card{margin-top:14px;border:1px solid var(--line);border-radius:10px;padding:20px 16px;box-shadow:0 5px 18px rgba(25,54,90,.06)}
.profile-avatar-wrap{position:relative;width:112px;margin:0 auto 12px}.profile-avatar{width:112px;height:112px;border-radius:50%;display:grid;place-items:center;overflow:hidden;background:color-mix(in srgb,var(--blue) 12%,#fff);border:1px solid color-mix(in srgb,var(--blue) 25%,var(--line));color:var(--blue);font-size:38px}.profile-avatar img{width:100%;height:100%;object-fit:cover}.profile-avatar-edit{position:absolute;right:1px;bottom:5px;width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:var(--blue);color:#fff;border:3px solid var(--card);cursor:pointer}.profile-avatar-edit svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.profile-card>h3{text-align:center;margin:0;font-size:22px;font-weight:650}.profile-username{text-align:center;margin:3px 0 8px;color:var(--muted)}.profile-role-row{display:flex;justify-content:center;align-items:center;gap:8px;color:var(--muted);font-size:12px}.profile-role-chip{padding:4px 8px;border-radius:5px;background:color-mix(in srgb,var(--blue) 10%,#fff);color:var(--blue-dark)}
.profile-form{display:grid;gap:11px;margin-top:19px}.profile-form label,.compact-form-card label{display:grid;gap:5px;color:var(--muted);font-size:13px;font-weight:600}.profile-form input,.compact-form-card input,.compact-form-card select{width:100%;min-height:45px;padding:9px 11px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--navy);font:inherit}.profile-form input:focus,.compact-form-card input:focus,.compact-form-card select:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 14%,transparent)}.profile-form input:disabled{background:color-mix(in srgb,var(--bg) 70%,#fff);color:var(--muted)}.profile-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.profile-permissions{padding:11px;border:1px solid var(--line);border-radius:7px;background:color-mix(in srgb,var(--bg) 58%,#fff)}.profile-permissions span{font-size:12px;color:var(--muted)}.profile-permissions p{margin:4px 0 0;line-height:1.45;font-size:13px}.theme-picker{margin:0;padding:12px;border:1px solid var(--line);border-radius:7px}.theme-picker legend{padding:0 5px;font-size:13px;font-weight:650}.theme-picker>p{margin:0 0 10px;color:var(--muted);font-size:12px}.theme-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.theme-option{position:relative;display:grid;gap:5px;padding:8px;border:1px solid var(--line);border-radius:6px;cursor:pointer}.theme-option:has(input:checked){border-color:var(--blue);box-shadow:0 0 0 2px color-mix(in srgb,var(--blue) 12%,transparent)}.theme-option input{position:absolute;opacity:0;pointer-events:none}.theme-option.locked{opacity:.58;cursor:not-allowed}.theme-swatches{display:flex;height:23px;overflow:hidden;border-radius:4px;border:1px solid var(--line)}.theme-swatches i{flex:1;background:var(--swatch)}.theme-option strong{font-size:11px;font-weight:600}.theme-option small{font-size:9px;color:var(--muted)}
.select-shell{position:relative;display:block}.select-shell select{appearance:none;padding-right:48px!important}.select-arrow{position:absolute;right:0;top:0;bottom:0;width:39px;display:grid;place-items:center;border-left:1px solid var(--line);background:color-mix(in srgb,var(--bg) 65%,#fff);pointer-events:none;border-radius:0 6px 6px 0}.select-arrow::before{content:"";width:7px;height:7px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg) translateY(-2px)}
.business-users-list{display:grid;gap:8px;margin:14px 0}.business-user-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;border:1px solid var(--line);border-radius:8px;padding:12px}.business-user-card>div:first-child{display:grid;gap:3px}.business-user-card strong{font-weight:650}.business-user-card span{font-size:12px;color:var(--muted)}.user-status{font-size:12px;color:var(--muted)}.business-user-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:7px}.business-user-actions select{width:100%;min-height:40px;border:1px solid var(--line);border-radius:6px;padding:7px 45px 7px 9px;background:var(--card)}.business-user-actions button{border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--blue-dark);padding:7px 11px}.compact-form-card,.legal-card{border:1px solid var(--line);border-radius:9px;padding:15px;margin:12px 0}.compact-form-card h3,.legal-card h3{margin:0 0 12px;font-size:16px;font-weight:650}.legal-card p{color:var(--muted);line-height:1.55}.legal-card h3:not(:first-child){margin-top:17px}.legal-card small{color:var(--muted)}
.menu-user-avatar{background-size:cover;background-position:center}.home-app-icon svg{stroke-linecap:round;stroke-linejoin:round}
@media(max-width:390px){.profile-form-grid{grid-template-columns:1fr}.theme-options{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v2.4.0 · roles, cargos y permisos por negocio */
.profile-readonly{display:grid;align-content:center;gap:4px;padding:9px 11px;border:1px solid var(--line);border-radius:6px;background:color-mix(in srgb,var(--bg) 58%,#fff)}
.profile-readonly>span{font-size:12px;color:var(--muted)}.profile-readonly>strong{font-size:14px;font-weight:600}.profile-readonly>small{font-size:11px;color:var(--muted)}
.section-heading>.secondary{min-height:38px;padding:7px 12px}
.business-user-card>.secondary{align-self:center;min-height:36px;padding:6px 10px}
.check-row{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:9px!important;color:var(--navy)!important}
.check-row input{width:18px!important;min-height:18px!important;height:18px!important}
.permission-catalog{display:grid;gap:7px;margin-top:5px}.permission-catalog h4{margin:9px 0 0;color:var(--muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.permission-option{display:grid!important;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:9px!important;padding:9px;border:1px solid var(--line);border-radius:6px;background:color-mix(in srgb,var(--bg) 48%,#fff);color:var(--navy)!important}
.permission-option input{width:18px!important;height:18px!important;min-height:18px!important;margin-top:1px}.permission-option span{display:grid;gap:2px}.permission-option strong{font-size:13px;font-weight:600}.permission-option small{font-size:11px;color:var(--muted);font-weight:400}.permission-option.unavailable{opacity:.5}
.form-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:5px}

/* v2.4.1 · previews reales de tema + límite Free */
.theme-option.locked{opacity:1;cursor:not-allowed;background:color-mix(in srgb,var(--card) 94%,#eef2f5)}
.theme-option.locked strong{color:var(--navy)}
.theme-option.locked small{color:#9a6b18}
.theme-preview{position:relative;display:block;height:42px;overflow:hidden;border:1px solid #d8e0e7;border-radius:4px;background:var(--preview-bg);box-shadow:inset 0 0 0 1px rgba(255,255,255,.45)}
.theme-preview-bar{position:absolute;left:0;top:0;width:100%;height:10px;background:var(--preview-main)}
.theme-preview-card{position:absolute;left:6px;top:15px;width:58%;height:20px;border:1px solid var(--preview-line);border-radius:3px;background:var(--preview-card)}
.theme-preview-button{position:absolute;right:6px;bottom:7px;width:25%;height:8px;border-radius:2px;background:var(--preview-main)}
.theme-preview-default{--preview-main:#0b69c7;--preview-bg:#eaf4ff;--preview-card:#ffffff;--preview-line:#c9dff4}
.theme-preview-ocean{--preview-main:#287f9f;--preview-bg:#e7f5f8;--preview-card:#fbfeff;--preview-line:#bcdce4}
.theme-preview-sage{--preview-main:#4f8068;--preview-bg:#edf6f0;--preview-card:#fcfefd;--preview-line:#c9dfd1}
.theme-preview-violet{--preview-main:#7564a8;--preview-bg:#f1eef9;--preview-card:#fdfcff;--preview-line:#d8d0ea}
.theme-preview-sand{--preview-main:#a06f42;--preview-bg:#f8f1e7;--preview-card:#fffdf9;--preview-line:#e5d4bd}
.theme-preview-slate{--preview-main:#5d7084;--preview-bg:#edf1f5;--preview-card:#fcfdfe;--preview-line:#ced7df}
.user-plan-limit-note{margin:0 0 10px;padding:9px 10px;border:1px solid #e4d5ad;border-radius:5px;background:#fffaf0;color:#765d26;font-size:12px;line-height:1.4;font-weight:400}
.compact-form-card.user-limit-reached label,.compact-form-card.user-limit-reached input,.compact-form-card.user-limit-reached select{opacity:.62}
.compact-form-card.user-limit-reached button[type="submit"]{opacity:1;background:#f6efe0;color:#856823;border-color:#dfcca0}

/* v2.4.5 · permisos operativos por usuario */
.user-permission-section{margin:3px 0;padding:12px;border:1px solid var(--line);border-radius:7px;background:color-mix(in srgb,var(--bg) 42%,#fff)}
.user-permission-section legend{padding:0 5px;color:var(--navy);font-size:14px;font-weight:700}.permission-help{margin:0 0 10px;color:var(--muted);font-size:12px;line-height:1.4}
.user-permission-checks{display:grid;gap:3px}.compact-form-card .user-permission-option{display:flex;grid-template-columns:none;align-items:center;gap:9px;min-height:39px;padding:6px 4px;border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent);color:var(--navy);font-size:13px;font-weight:500}
.compact-form-card .user-permission-option:last-child{border-bottom:0}.compact-form-card .user-permission-option input{width:18px;min-height:18px;height:18px;margin:0;accent-color:var(--blue)}.user-permission-option.unavailable{opacity:.5}

/* v2.4.6 · contraseñas temporales y primer acceso */
.password-field{position:relative;width:100%}.password-field input{padding-right:52px!important}.password-toggle{position:absolute;right:1px;top:1px;width:50px;height:calc(100% - 2px);border:0;border-left:1px solid var(--line);border-radius:0 10px 10px 0;background:#f5f8fb;color:var(--muted);display:grid;place-items:center;font-size:20px;cursor:pointer}.password-toggle.is-visible{color:var(--blue-dark);background:#eaf4ff}.password-toggle:focus-visible{outline:2px solid var(--blue);outline-offset:1px}.password-reset-box{margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:10px;background:#f8fbfe}.password-reset-box label{margin-top:0}.password-reset-box small,.field-help{display:block;color:var(--muted);font-weight:500;line-height:1.35}.optional-label{font-weight:500;color:var(--muted)}.force-password-modal{z-index:120}.force-password-modal .modal-card>p{line-height:1.45}

/* v2.4.7 · Font Awesome + búsqueda de folios en vivo */


/* v2.4.8 · Font Awesome SVG local: no depende de CDN/webfonts */
.fa-inline-svg{display:block;width:20px;height:20px;fill:currentColor;pointer-events:none}.password-toggle .fa-inline-svg{width:18px;height:18px}.header-actions .icon-btn>.fa-inline-svg{width:20px;height:20px}.fa-inline-svg.hidden{display:none!important}

/* v2.4.9 · encabezado Caja */
#toggleTodayBannerBtn{color:#172b45!important;background:transparent!important;opacity:1!important}
#toggleTodayBannerBtn .fa-inline-svg{width:22px;height:22px;fill:currentColor!important;opacity:1!important}
#toggleTodayBannerBtn.today-hidden{color:#172b45!important;opacity:1!important}
#historyBtn .fa-money-doc{width:24px;height:24px;fill:currentColor}

/* v2.5.0 · registro obligatorio de dispositivo + iconografía outline */
#toggleTodayBannerBtn .fa-inline-svg{fill:none!important;stroke:currentColor;stroke-width:34;stroke-linecap:round;stroke-linejoin:round}
#historyBtn .fa-money-doc{fill:none!important;stroke:currentColor;stroke-width:22;stroke-linecap:round;stroke-linejoin:round}

/* v2.5.1 · corrección real de iconos outline */
#toggleTodayBannerBtn .fa-inline-svg path,
#toggleTodayBannerBtn .fa-inline-svg circle,
#historyBtn .fa-money-doc path{
  fill:none!important;
  stroke:currentColor!important;
  vector-effect:non-scaling-stroke;
}
#toggleTodayBannerBtn .fa-inline-svg path,
#toggleTodayBannerBtn .fa-inline-svg circle{
  stroke-width:1.8!important;
}
#historyBtn .fa-money-doc path{
  stroke-width:1.65!important;
}

/* v2.5.2 · dispositivo por usuario */
.device-plan-notice,.user-device-box{display:grid;gap:5px;margin:10px 0;padding:12px;border:1px solid var(--line);border-radius:10px;background:#f8fbfe}.device-plan-notice strong,.user-device-box>span{font-weight:700}.device-plan-notice span,.user-device-box small{color:var(--muted);line-height:1.4}.user-device-box button{margin-top:7px}


/* v2.5.5 · cerrar sesión integrado al grid de Inicio */
.home-logout-tile .home-app-icon{background:#f7f9fc}
.home-logout-tile .home-app-icon svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.report-options>label.report-option-unavailable{display:none}

/* v2.6.0 · configuración de impresoras por negocio y dispositivo */
.home-app-icon .fa-printer-icon{fill:currentColor;stroke:none;width:25px;height:25px}
.home-app-icon .fa-inventory-icon{fill:currentColor;stroke:none;width:25px;height:25px}
/* v2.10.40.4 · iconos Font Awesome añadidos al Inicio */
.home-app-icon .fa-cash-register-icon,.home-app-icon .fa-tools-icon,.home-app-icon .fa-help-icon{fill:currentColor;stroke:none;width:27px;height:27px}
.printer-browser-note{display:grid;gap:5px;margin:12px 0;padding:12px;border:1px solid #cdddea;border-radius:7px;background:#f5faff;color:var(--navy)}
.printer-browser-note strong{font-size:14px;font-weight:650}.printer-browser-note span{font-size:12px;line-height:1.45;color:var(--muted)}
.printer-settings-form{display:grid;gap:12px}.printer-settings-card{border:1px solid var(--line);border-radius:8px;padding:14px;background:var(--card)}
.printer-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:11px;border-bottom:1px solid var(--line)}
.printer-card-heading h3{margin:0;font-size:16px;font-weight:650}.printer-card-heading p{margin:3px 0 0;color:var(--muted);font-size:12px}
.printer-switch{display:flex;align-items:center;gap:7px;color:var(--navy);font-size:13px;white-space:nowrap}.printer-switch input,.printer-check input,.printer-future-options input{width:18px;height:18px;accent-color:var(--blue)}
.printer-fields{display:grid;gap:11px;padding-top:12px;transition:opacity .15s}.printer-fields-disabled{opacity:.52}
.printer-fields>label:not(.printer-check),#separateReportPrinterFields>label{display:grid;gap:5px;color:var(--muted);font-size:13px;font-weight:600}
.printer-fields input[type="text"],.printer-fields input[type="number"],.printer-fields select,.printer-fields input:not([type]){width:100%;min-height:44px;padding:9px 11px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--navy);font:inherit}
#separateReportPrinterFields{display:grid;gap:11px}.printer-options-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.printer-options-grid label{display:grid;gap:5px;color:var(--muted);font-size:13px;font-weight:600}
.printer-check{display:flex;align-items:flex-start;gap:9px;color:var(--navy);font-size:13px;line-height:1.4}.printer-check input{flex:0 0 auto;margin-top:1px}
.printer-future-options{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;padding:10px;border:1px dashed var(--line);border-radius:6px;background:color-mix(in srgb,var(--bg) 45%,#fff);font-size:12px;color:var(--muted)}
.printer-future-options>span{width:100%;font-size:11px}.printer-future-options label{display:flex;align-items:center;gap:6px}
.printer-security-note{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.printer-pro-badge{color:var(--blue);font-size:10px;font-weight:700;letter-spacing:.04em}.sale-print-btn{display:flex;align-items:center;justify-content:center;gap:8px}.sale-print-btn .fa-printer-icon{width:18px;height:18px}.sale-print-prompt{margin:2px 0 8px;padding:8px 10px;border:1px solid #cfe0ee;border-radius:6px;background:#f5faff;color:#3e5f78;font-size:12px}.print-frame{position:fixed;right:0;bottom:0;width:1px;height:1px;border:0;opacity:0;pointer-events:none}.cut-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.cut-row>div{display:grid;gap:2px;min-width:0}.cut-print-btn{flex:0 0 auto;min-height:34px;padding:6px 9px;font-size:11px}
@media(max-width:390px){.printer-options-grid{grid-template-columns:1fr}.printer-card-heading{align-items:center}}

/* v2.6.1 · nombre del negocio alineado a la izquierda */
.header-brand #businessName{justify-self:start!important;text-align:left!important;width:100%!important;}
.header-brand{text-align:left!important;}

/* v2.7.3 · layout progresivo compartido para tablet y escritorio */
.screen{width:100%;min-width:0;margin-inline:auto}
.screen img,.screen svg{max-width:100%}

@media(min-width:700px){
 body{background:var(--bg)}
 .app{width:min(100%,1120px);max-width:1120px;padding-left:18px;padding-right:18px;background:transparent;box-shadow:none}
 .app-header{left:0;transform:none;width:100%;max-width:none;padding-left:max(18px,calc((100vw - 1120px)/2 + 18px));padding-right:max(18px,calc((100vw - 1120px)/2 + 18px));border-left:0;border-right:0;background:var(--card)}
 .menu-panel{right:max(18px,calc((100vw - 1120px)/2 + 18px))}
 .home-welcome{padding:22px 5px 18px}
 .home-welcome h1{font-size:28px}
 .home-app-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
 .home-app-tile{min-height:120px;padding:14px 10px 11px}
 .home-app-tile .home-app-icon{width:46px;height:46px}
 #calculatorView,#paymentView,#changeView{max-width:560px}
 #cashMovementView{max-width:720px}
 #profileView{max-width:760px}
 #printersView,#approvalsView,#usersView,#userEditorView,#positionsView,#termsView{max-width:900px}
 #historyView{max-width:980px}
 #analyticsView{max-width:1120px}
 #analyticsView .stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 #historyView .history-list{max-height:none;overflow:visible}
}

@media(min-width:900px){
 .home-app-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
 #historyView .history-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
 #usersView .business-users-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
}

@media(min-width:1200px){
 .home-app-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
 .home-app-tile{min-height:124px}
 #analyticsView .stats-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
}

/* v2.8.0 · venta mixta e Inventario bajo demanda */
.cash-inventory-tools{display:grid;grid-template-columns:minmax(0,1fr) 48px;gap:8px;margin-bottom:10px}.cash-inventory-tools button{min-height:46px;border:1px solid color-mix(in srgb,var(--blue) 30%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--blue) 7%,var(--card));color:var(--blue-dark);font-weight:600}.cash-inventory-camera{display:grid;place-items:center}.cash-inventory-search{display:flex;align-items:center;justify-content:center;gap:8px}.cash-inventory-tools svg,.inventory-cash-search svg{width:19px;height:19px;fill:currentColor}.sale-inventory-items{display:grid;gap:7px;margin-bottom:10px}.sale-inventory-line{display:grid;grid-template-columns:minmax(0,1fr) auto auto 34px;gap:8px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:8px;background:var(--card)}.sale-inventory-line>div:first-child{display:grid;min-width:0}.sale-inventory-line small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sale-line-quantity{display:flex;align-items:center;gap:5px}.sale-line-quantity button,.sale-line-remove{width:30px;height:30px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--blue-dark)}.sale-line-remove{color:var(--red)}.inventory-cash-card{width:min(94vw,720px);max-height:90dvh;overflow:auto}.inventory-cash-search{display:grid;grid-template-columns:minmax(0,1fr) 46px auto;gap:7px}.inventory-cash-search input,.inventory-cash-search button{min-height:46px;border:1px solid var(--line);border-radius:7px;background:var(--card);color:var(--navy);padding:8px}.inventory-cash-search button{color:var(--blue-dark)}.inventory-cash-results{display:grid;gap:8px;max-height:56dvh;overflow:auto;margin:12px 0}.inventory-cash-results>p{color:var(--muted)}.inventory-cash-product{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(150px,.9fr) 90px auto;gap:8px;align-items:end;padding:10px;border:1px solid var(--line);border-radius:8px}.inventory-cash-product>div{display:grid}.inventory-cash-product small{color:var(--muted)}.inventory-cash-product label{display:grid;gap:4px;font-size:12px;color:var(--muted)}.inventory-cash-product select,.inventory-cash-product input,.inventory-cash-product button{min-height:42px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--navy);padding:7px}.inventory-cash-product>button{background:var(--blue);color:#fff;border-color:var(--blue)}.cash-scanner-dialog{width:min(94vw,560px);max-height:92dvh;padding:0;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--navy)}.cash-scanner-dialog::backdrop{background:rgba(13,28,45,.62)}.scanner-shell{padding:16px}.scanner-shell header{display:flex;justify-content:space-between;gap:12px}.scanner-shell h2{margin:0}.scanner-stage{position:relative;margin:14px 0;aspect-ratio:4/3;overflow:hidden;border-radius:8px;background:#08111b}.scanner-stage video{width:100%;height:100%;object-fit:cover}.scanner-guide{position:absolute;inset:24% 8%;border:2px solid #fff;border-radius:7px;box-shadow:0 0 0 999px rgba(0,0,0,.28)}.scanner-guide:after{content:"";position:absolute;left:8%;right:8%;top:50%;height:2px;background:#ef4d56}.scanner-status{border-left:3px solid var(--blue);padding-left:10px;color:var(--muted)}.scanner-diagnostics{margin-bottom:12px;font-size:11px}.scanner-diagnostics pre{max-height:160px;overflow:auto;white-space:pre-wrap}.dialog-close{width:40px;height:40px;border:1px solid var(--line);border-radius:7px;background:var(--card);color:var(--muted);font-size:24px}@media(max-width:680px){.inventory-cash-product{grid-template-columns:1fr 1fr}.inventory-cash-product>div{grid-column:1/-1}.inventory-cash-product>button{grid-column:1/-1}.sale-inventory-line{grid-template-columns:minmax(0,1fr) auto 34px}.sale-inventory-line>strong{grid-column:1}.sale-line-quantity{grid-column:2;grid-row:1/3}.sale-line-remove{grid-column:3;grid-row:1/3}}

/* v2.9.1 · recuperación de acceso */
.auth-link-btn{display:block;margin:10px auto 2px;border:0;background:transparent;color:var(--blue-dark);font-weight:750;text-decoration:underline;text-underline-offset:3px;padding:8px 10px}.auth-link-btn:hover{text-decoration-thickness:2px}.auth-recovery-card{position:relative}.auth-recovery-card h2{text-align:center}.auth-recovery-card>p{text-align:center;line-height:1.45}.auth-regular-icon{width:48px;height:48px;margin:0 auto 12px;display:grid;place-items:center;color:var(--blue-dark)}.auth-regular-icon svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.modal-close-regular{position:absolute;right:12px;top:10px;width:40px;height:40px;border:0;background:transparent;color:var(--muted);font-size:30px;line-height:1;font-weight:400}.form-status{min-height:22px;margin:10px 0 0;text-align:center;color:var(--muted);font-weight:650;line-height:1.4}.form-status.success{color:var(--green)}.form-status.error{color:var(--red)}
/* v2.9.2 · acceso más fino y menos redondeado */
.auth-view{padding:18px;background:#f4f7fa}
.auth-card{width:min(100%,400px);border:1px solid #dfe6ed;border-radius:9px;padding:30px 28px;box-shadow:0 8px 24px rgba(25,54,90,.07)}
.auth-card h1{font-size:24px;font-weight:600;letter-spacing:-.02em;margin:14px 0 5px}
.auth-card>p{font-size:14px;margin-bottom:22px}
.auth-card label,.auth-recovery-card label{font-weight:500;font-size:13px;color:var(--navy)}
.auth-card input,.auth-recovery-card input{height:50px;border-radius:5px;font-size:16px;background:#fff}
.auth-card .tall,.auth-recovery-card .tall{min-height:48px;border-radius:5px;font-weight:500;letter-spacing:0}
.auth-card .password-toggle{border-radius:0 4px 4px 0}
.auth-link-btn{font-weight:400;text-decoration:none;font-size:13px;margin:7px auto 1px}
.auth-link-btn:hover{text-decoration:underline;text-decoration-thickness:1px}
.auth-card>p:last-child{font-size:13px;margin-top:18px;margin-bottom:0}
.auth-card>p:last-child a{font-weight:500}
.auth-divider{display:flex;align-items:center;gap:10px;margin:14px 0;color:#8793a3;font-size:12px}
.auth-divider:before,.auth-divider:after{content:"";height:1px;background:#e0e6ec;flex:1}
.google-login-btn{min-height:48px;display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid #cfd8e2;border-radius:5px;background:#fff;color:#263548;text-decoration:none;font-size:14px;font-weight:500;transition:background .15s,border-color .15s}
.google-login-btn:hover{background:#f8fafc;border-color:#b9c6d3}.google-login-btn:active{transform:scale(.99)}
.google-login-btn svg{width:18px;height:18px;flex:0 0 18px}.google-login-btn svg path:nth-child(1){fill:#4285f4}.google-login-btn svg path:nth-child(2){fill:#34a853}.google-login-btn svg path:nth-child(3){fill:#fbbc05}.google-login-btn svg path:nth-child(4){fill:#ea4335}
.auth-recovery-card{border-radius:9px!important;box-shadow:0 12px 30px rgba(25,54,90,.10)!important}.auth-recovery-card h2{font-weight:600}.auth-recovery-card>p{font-weight:400}.form-status{font-weight:400}

/* v2.9.3 · jerarquía de acceso y ojo regular integrado */
.passkey-login-group{display:grid;gap:5px;margin-top:9px}.passkey-login-group .login-hint{margin-top:0;text-align:center;font-weight:400}.auth-card .auth-divider{margin:16px 0 13px}.auth-card .auth-divider span{white-space:nowrap}.auth-card .password-field input{padding-right:44px!important}.auth-card .password-toggle{right:5px;top:50%;transform:translateY(-50%);width:38px;height:38px;border:0!important;border-radius:50%!important;background:transparent!important;color:#6e7d90}.auth-card .password-toggle:hover{background:#f2f5f8!important;color:var(--navy)}.auth-card .password-toggle.is-visible{background:transparent!important;color:var(--blue-dark)}.auth-card .password-toggle .fa-inline-svg{width:19px;height:19px;fill:none!important;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.auth-card .password-toggle:focus-visible{outline:2px solid var(--blue);outline-offset:0}.auth-card .google-login-btn{margin-top:2px}.auth-card .secondary.tall{font-weight:400;text-transform:none;background:#fff}.auth-card .auth-submit{font-weight:500}

/* v2.9.4 · correo editable del perfil */
.profile-email-status{display:block;margin-top:1px;color:var(--muted);font-size:11px;font-weight:400;line-height:1.35}.profile-email-status.verified{color:#18794e}.profile-email-status.checking{color:var(--muted)}.profile-email-status.available{color:#18794e}.profile-email-status.unavailable,.profile-email-status.invalid{color:#b42318}

/* v2.9.11 · búsqueda visible de catálogo en Caja */
.cash-inventory-tools{grid-template-columns:minmax(0,1fr) 48px}.cash-product-entry{display:grid;grid-template-columns:minmax(0,1fr) 46px;gap:6px}.cash-product-entry input{min-width:0;min-height:46px;border:1px solid var(--line);border-radius:7px;background:var(--card);color:var(--navy);padding:0 12px;font-size:16px}.cash-product-entry button{min-height:46px}.cash-inventory-tools i{font-size:18px}.inventory-cash-product small{display:block}.inventory-cash-product input[data-cash-free-price]{font-size:16px}
\n/* v2.9.28 · Denominaciones fijas con referencia visual y captura física inmediata */
.denomination-btn{position:relative;overflow:hidden;transition:transform .08s ease,box-shadow .12s ease,border-color .12s ease;background:#fff}
.denomination-btn:not(.exact)::before{content:"";position:absolute;inset:0 auto 0 0;width:7px;background:var(--denom-accent,#b9d6f1)}
.denomination-btn:not(.exact){background:linear-gradient(90deg,var(--denom-tint,#fff),#fff 46%);border-color:var(--denom-border,#b9d6f1)}
.denomination-5{--denom-accent:#b59a55;--denom-tint:#f7f1df;--denom-border:#d9c99f}
.denomination-10{--denom-accent:#c99a32;--denom-tint:#fbf2d7;--denom-border:#e2c878}
.denomination-20{--denom-accent:#5b9eb6;--denom-tint:#e6f4f8;--denom-border:#a9d2df}
.denomination-50{--denom-accent:#b05a86;--denom-tint:#f8e8f0;--denom-border:#dfabc5}
.denomination-100{--denom-accent:#b44d4f;--denom-tint:#f8e7e7;--denom-border:#dda6a7}
.denomination-200{--denom-accent:#5e8d64;--denom-tint:#e9f3e9;--denom-border:#adcaaf}
.denomination-500{--denom-accent:#477fa6;--denom-tint:#e6f0f7;--denom-border:#9fc0d7}
.denomination-1000{--denom-accent:#6e7188;--denom-tint:#ececf2;--denom-border:#b8bac8}
.manual-amount-trigger.active{box-shadow:0 0 0 3px #0b69c718}
@media (prefers-reduced-motion:reduce){.denomination-btn{transition:none}}

/* v2.9.29 — En escritorio el cobro usa teclado físico; el teclado táctil queda para móvil/tablet. */
@media (min-width: 769px) and (hover: hover) and (pointer: fine){
  #paymentView .custom-amount{display:none!important}
  #paymentView .manual-amount-trigger{cursor:text}
  #paymentView .manual-amount-trigger small{font-size:0}
  #paymentView .manual-amount-trigger small::after{content:"Escribe con el teclado · Enter para continuar";font-size:12px}
}

/* v2.9.34 · retratos/simbolos locales en denominaciones */
.denomination-btn:not(.exact){isolation:isolate;position:relative;overflow:hidden;text-shadow:0 1px 0 rgba(255,255,255,.72)}
.denomination-btn .denomination-label{position:relative;z-index:3}
.denomination-btn:not(.exact)::after{content:"";position:absolute;z-index:1;top:0;right:0;width:64%;height:100%;background-repeat:no-repeat;background-position:right center;background-size:auto 118%;opacity:.26;filter:grayscale(1) contrast(.92);-webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.28) 20%,#000 52%,#000 100%);mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.28) 20%,#000 52%,#000 100%);pointer-events:none}
.denomination-btn:not(.exact)::before{z-index:2}
/* $5 y $10 conservan los simbolos SVG locales de la version anterior. */
.denomination-btn[data-denomination="5"]::after{background-image:url("../denominations-local/5-eagle.svg");background-size:auto 86%;opacity:.22}
.denomination-btn[data-denomination="10"]::after{background-image:url("../denominations-local/10-sunstone.svg");background-size:auto 92%;opacity:.22}
/* Retratos/imagenes historicas que David coloco en assets/img/denominaciones/. */
.denomination-btn[data-denomination="20"]::after{background-image:url("../img/denominaciones/juarez.png");background-position:92% 18%;background-size:auto 145%}
.denomination-btn[data-denomination="50"]::after{background-image:url("../img/denominaciones/ajolote.jpg");background-position:right 48%;background-size:auto 138%;opacity:.24}
.denomination-btn[data-denomination="100"]::after{background-image:url("../img/denominaciones/sor-juana.jpg");background-position:94% 18%;background-size:auto 150%}
.denomination-btn[data-denomination="200"]::after{width:70%;background-image:url("../img/denominaciones/morelos.jpg"),url("../img/denominaciones/hidalgo.png");background-position:100% 18%,65% 18%;background-size:auto 145%,auto 145%;opacity:.24}
.denomination-btn[data-denomination="500"]::after{background-image:url("../img/denominaciones/juarez.png");background-position:94% 18%;background-size:auto 150%;opacity:.28}
.denomination-btn[data-denomination="1000"]::after{background-image:url("../img/denominaciones/madero.jpg");background-position:94% 15%;background-size:auto 150%;opacity:.28}
@media (max-width:699px){.denomination-btn:not(.exact)::after{width:59%;opacity:.22}.denomination-btn[data-denomination="200"]::after{width:68%;opacity:.21}}

/* v2.9.35 · importe a la izquierda + retratos entonados por denominacion */
.denomination-btn:not(.exact){
  display:flex;
  align-items:center;
  justify-content:flex-start;
  padding-left:28px;
  padding-right:10px;
  text-align:left;
}

/* v2.10.0 · cola persistente y estados de ventas sin conexión */
.connection-status{border:0!important;background:transparent!important;padding:0!important;cursor:pointer!important;text-align:left!important;font-family:inherit!important;max-width:min(52vw,310px)!important;min-width:0!important}.connection-status>span:last-child{overflow:hidden;text-overflow:ellipsis}
.connection-status.syncing{color:var(--blue)!important}.connection-status.syncing .connection-status-dot{background:var(--blue);animation:offline-pulse 1s infinite}
.connection-status.pending{color:#946200!important}.connection-status.pending .connection-status-dot{background:#d99516;box-shadow:0 0 0 2px rgba(217,149,22,.12)}
@keyframes offline-pulse{50%{opacity:.35}}
.pending-sales-card{width:min(100%,620px);max-height:min(84dvh,760px);overflow:auto}
.pending-sales-card>p{margin:0 0 14px;line-height:1.4}
.pending-sales-list{display:grid;gap:9px}
.pending-sale-row{border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--card);display:grid;gap:6px}
.pending-sale-row header{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.pending-sale-row header strong{font-size:15px}.pending-sale-row header span{font-size:18px;color:var(--navy);font-weight:750}
.pending-sale-row small{color:var(--muted);line-height:1.35}.pending-sale-error{color:var(--red)!important}
.pending-sale-row footer{display:flex;gap:8px;flex-wrap:wrap}.pending-sale-row footer button{min-height:40px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--blue-dark);padding:7px 11px;font-weight:750}
.pending-sales-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.pending-sales-actions .tall{margin-top:0}
.pending-import-label{display:block;margin:16px 0 6px;color:var(--muted);font-size:13px}.pending-sales-card input[type=file]{width:100%;padding:9px;border:1px solid var(--line);border-radius:8px;background:#fff}
body.offline-limited .home-disabled-note::before{content:'Modo offline: solo Caja está disponible hasta recuperar conexión. ';color:var(--red)}
@media(max-width:520px){.pending-sales-actions{grid-template-columns:1fr}.pending-sale-row header{align-items:flex-start;flex-direction:column;gap:3px}}
.denomination-btn .denomination-label{
  position:relative;
  z-index:4;
  min-width:max-content;
}
.denomination-btn:not(.exact)::after{
  width:58%;
  opacity:.36;
  background-position:right center;
  background-size:auto 132%;
  filter:var(--denom-image-filter,grayscale(1) contrast(1.05));
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.08) 10%,rgba(0,0,0,.55) 38%,#000 66%,#000 100%);
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.08) 10%,rgba(0,0,0,.55) 38%,#000 66%,#000 100%);
}
.denomination-5{--denom-image-filter:grayscale(1) sepia(1) saturate(2.1) hue-rotate(2deg) brightness(.88) contrast(1.08)}
.denomination-10{--denom-image-filter:grayscale(1) sepia(1) saturate(2.6) hue-rotate(3deg) brightness(.88) contrast(1.08)}
.denomination-20{--denom-image-filter:grayscale(1) sepia(1) saturate(2.2) hue-rotate(145deg) brightness(.88) contrast(1.08)}
.denomination-50{--denom-image-filter:grayscale(1) sepia(1) saturate(2.2) hue-rotate(275deg) brightness(.9) contrast(1.08)}
.denomination-100{--denom-image-filter:grayscale(1) sepia(1) saturate(2.1) hue-rotate(305deg) brightness(.88) contrast(1.08)}
.denomination-200{--denom-image-filter:grayscale(1) sepia(1) saturate(1.9) hue-rotate(72deg) brightness(.88) contrast(1.08)}
.denomination-500{--denom-image-filter:grayscale(1) sepia(1) saturate(2.2) hue-rotate(155deg) brightness(.86) contrast(1.1)}
.denomination-1000{--denom-image-filter:grayscale(1) sepia(1) saturate(1.35) hue-rotate(190deg) brightness(.84) contrast(1.1)}
.denomination-btn[data-denomination="20"]::after,
.denomination-btn[data-denomination="100"]::after,
.denomination-btn[data-denomination="500"]::after,
.denomination-btn[data-denomination="1000"]::after{background-size:auto 158%}
.denomination-btn[data-denomination="50"]::after{background-size:auto 148%;opacity:.34}
.denomination-btn[data-denomination="200"]::after{width:62%;background-size:auto 152%,auto 152%;background-position:100% 18%,58% 18%;opacity:.34}
@media (max-width:699px){
  .denomination-btn:not(.exact){padding-left:24px}
  .denomination-btn:not(.exact)::after{width:56%;opacity:.32}
  .denomination-btn[data-denomination="200"]::after{width:61%;opacity:.31}
}

/* v2.10.3 - estados separados de conexión y venta offline */
.connection-indicators{grid-column:2!important;grid-row:2!important;display:flex!important;align-items:center!important;flex-wrap:wrap!important;gap:5px 13px!important;margin-top:7px!important;min-width:0!important}
.connection-indicators .connection-status{grid-column:auto!important;grid-row:auto!important;margin-top:0!important;max-width:none!important;display:inline-flex!important;flex:0 1 auto!important}
.connection-indicators .network-status{cursor:default!important}
.connection-indicators .offline-ready-status{cursor:pointer!important}
.header-brand{align-items:center!important}
@media(max-width:430px){.connection-indicators{gap:4px 10px!important;margin-top:8px!important}.connection-indicators .connection-status{font-size:8.5px!important}}


/* v2.10.6 · ventas abiertas en pestañas */
.open-sales-bar{display:flex;align-items:center;gap:6px;padding:7px 10px 3px;min-width:0;background:var(--bg,#f5f7fa)}
.open-sales-bar.hidden{display:none!important}
.open-sales-tabs{display:flex;align-items:center;gap:5px;overflow-x:auto;scrollbar-width:thin;min-width:0;flex:1;padding-bottom:3px}
.open-sale-tab{display:inline-flex;align-items:center;flex:0 0 auto;border:1px solid var(--line);border-radius:8px;background:var(--card,#fff);overflow:hidden;min-height:36px}
.open-sale-tab.active{border-color:var(--blue);box-shadow:inset 0 -2px 0 var(--blue)}
.open-sale-select,.open-sale-close,.open-sale-new{border:0;background:transparent;color:var(--navy);font-family:inherit}
.open-sale-select{min-height:36px;padding:7px 9px;font-size:12px;white-space:nowrap;font-weight:600}
.open-sale-close{width:32px;min-height:36px;border-left:1px solid var(--line);color:var(--muted);font-size:13px}
.open-sale-new{flex:0 0 38px;width:38px;height:36px;border:1px solid var(--line);border-radius:8px;background:var(--card,#fff);color:var(--blue);font-size:14px}
.open-sale-new:disabled{opacity:.35}
@media(max-width:520px){.open-sales-bar{padding:6px 8px 2px;gap:5px}.open-sale-select{padding:6px 8px;font-size:11px}.open-sale-tab,.open-sale-select,.open-sale-close,.open-sale-new{min-height:34px}.open-sale-new{height:34px;width:36px;flex-basis:36px}}

/* v2.10.7 · pestañas suaves y ajuste vertical de Caja */
.open-sales-bar{
  position:sticky;
  top:calc(58px + env(safe-area-inset-top));
  z-index:18;
  background:var(--bg,#eef3f8);
  padding:7px 0 5px;
  gap:4px;
}
.open-sales-tabs{gap:2px;padding:0;scrollbar-width:none}
.open-sales-tabs::-webkit-scrollbar{display:none}
.open-sale-tab{
  min-height:34px;
  border:0;
  border-radius:10px 10px 4px 4px;
  background:rgba(255,255,255,.62);
  box-shadow:none;
  overflow:hidden;
  transition:background .16s ease,box-shadow .16s ease,color .16s ease;
}
.open-sale-tab.active{
  border:0;
  background:var(--card,#fff);
  box-shadow:0 -1px 0 rgba(20,36,58,.04),0 2px 8px rgba(20,36,58,.08);
}
.open-sale-select{min-height:34px;padding:6px 11px;font-size:12px;font-weight:500}
.open-sale-close{width:29px;min-height:34px;border-left:0;color:var(--muted);opacity:.72}
.open-sale-tab:not(.active) .open-sale-close{opacity:.45}
.open-sale-new{
  flex:0 0 34px;width:34px;height:34px;min-height:34px;
  border:0;border-radius:9px;background:transparent;color:var(--muted);
  transition:background .16s ease,color .16s ease;
}
.open-sale-new:hover{background:rgba(255,255,255,.68);color:var(--blue)}

@media(min-width:700px){
  .open-sales-bar{width:560px;max-width:560px;margin-right:auto}
}

/* La barra nueva ya ocupa altura: compactar Caja en monitores de poca altura. */
@media(min-width:700px) and (max-height:820px){
  #calculatorView .cash-inventory-tools{margin-bottom:7px}
  #calculatorView .cash-product-entry input,
  #calculatorView .cash-product-entry button,
  #calculatorView .cash-inventory-tools button{min-height:42px;height:42px}
  #calculatorView .display-card{min-height:116px;padding:12px 17px 11px}
  #calculatorView .expression-display{min-height:34px;max-height:48px;font-size:19px}
  #calculatorView .total-display{font-size:38px}
  #calculatorView .keypad{
    height:calc(100dvh - 342px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    min-height:300px;
    max-height:430px;
    gap:7px;
    margin-top:8px;
  }
  #calculatorView .key{border-radius:12px;font-size:24px}
  #calculatorView .key.operator{font-size:27px}
  #calculatorView .key.utility{font-size:21px}
  #calculatorView .charge-btn{font-size:19px;border-radius:12px}
}

@media(max-width:520px){
  .open-sales-bar{padding:6px 0 4px}
  .open-sale-tab,.open-sale-select,.open-sale-close,.open-sale-new{min-height:33px}
  .open-sale-select{padding:5px 9px;font-size:11px}
  .open-sale-new{height:33px;width:33px;flex-basis:33px}
}


/* v2.10.9 · pestañas de ventas sobre la Caja y botón + visible */
#calculatorView>.open-sales-bar{
  position:relative;
  top:auto;
  z-index:2;
  width:100%;
  max-width:560px;
  margin:0 0 5px 0;
  padding:0;
  background:transparent;
}
#calculatorView>.open-sales-bar .open-sales-tabs{flex:0 1 auto;max-width:calc(100% - 38px)}
#calculatorView>.open-sales-bar .open-sale-new{display:inline-flex;align-items:center;justify-content:center;flex:0 0 34px}
#calculatorView>.open-sales-bar .open-sale-plus-icon{display:block;width:12px;height:12px;fill:currentColor}
@media(max-width:520px){
  #calculatorView>.open-sales-bar{margin-bottom:4px}
  #calculatorView>.open-sales-bar .open-sales-tabs{max-width:calc(100% - 37px)}
}

/* v2.10.16 · barra de ventas aislada, estilo pestañas de navegador */
#calculatorView>.open-sales-bar{
  position:relative!important;top:auto!important;z-index:2!important;
  display:flex;align-items:flex-end;gap:4px;
  padding:0 0 0 7px!important;background:transparent!important;
  border-bottom:1px solid var(--line);
}
#calculatorView>.open-sales-bar.hidden{display:flex!important}
#calculatorView>.open-sales-bar .open-sales-tabs{display:flex;align-items:flex-end;gap:2px;min-width:0;flex:0 1 auto;overflow-x:auto;padding:0;scrollbar-width:none}
#calculatorView>.open-sales-bar .open-sales-tabs::-webkit-scrollbar{display:none}
#calculatorView>.open-sales-bar .open-sale-tab{display:inline-flex;align-items:center;min-height:34px;border:1px solid transparent;border-bottom:0;border-radius:10px 10px 0 0;background:transparent;overflow:hidden;box-shadow:none}
#calculatorView>.open-sales-bar .open-sale-tab.active{background:var(--card);border-color:var(--line);box-shadow:none;position:relative;top:1px}
#calculatorView>.open-sales-bar .open-sale-select{min-height:33px;padding:6px 10px;border:0;background:transparent;color:var(--navy);font-size:12px;font-weight:500;white-space:nowrap}
#calculatorView>.open-sales-bar .open-sale-close{display:inline-flex;align-items:center;justify-content:center;width:27px;height:33px;min-height:33px;padding:0;border:0;background:transparent;color:var(--muted);opacity:.68}
#calculatorView>.open-sales-bar .open-sale-close .fa-inline-svg{width:10px;height:10px;fill:currentColor}
#calculatorView>.open-sales-bar .open-sale-new{display:inline-flex!important;align-items:center;justify-content:center;flex:0 0 33px;width:33px;height:33px;min-height:33px;padding:0;border:0;border-radius:8px 8px 0 0;background:transparent;color:var(--muted)}
#calculatorView>.open-sales-bar .open-sale-new .fa-inline-svg{display:block;width:11px;height:11px;fill:currentColor}
@media(max-width:899px){
  #calculatorView>.open-sales-bar{width:100%;max-width:none;margin:0 0 7px;padding-left:7px!important}
}
/* v2.10.38 · módulos persistentes bajo el encabezado único */
.shell-module-view{width:100%;max-width:none!important;padding:0!important;margin:0!important}
.shell-module-loading,.shell-module-error{width:min(1080px,calc(100% - 28px));margin:32px auto;padding:22px;border:1px solid var(--line,#d7e3ec);border-radius:12px;background:var(--card,#fff);text-align:center;color:var(--muted,#607487)}
.shell-module-error strong{display:block;margin-bottom:6px;color:var(--text,#163044)}
#inventoryModuleView .inventory-shell{padding-top:20px}
#businessModuleView>.wrap,#licensesModuleView>.wrap{margin-top:0;padding-top:20px}

/* v2.10.51 · ventas a cuenta en historial */
.history-card.credit-sale-history{border-left:4px solid #d59a18}.history-credit-state{margin-top:9px;padding:7px 9px;border-radius:9px;background:#fff8e8;border:1px solid #f0ddb0;display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:12px;color:var(--navy)}.history-credit-state span{font-weight:850}.history-credit-state strong{color:#9a6400}.history-credit-state.is-paid{background:#edf9f2;border-color:#c9ead6}.history-credit-state.is-paid strong{color:#16804b}.credit-history-balance{color:#9a6400}.history-credit-state.is-paid~.history-actions{}

.custom-range-panel{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:end;margin:-4px 0 12px;padding:11px;border:1px solid var(--line);border-radius:12px;background:#fff}.custom-range-panel.hidden{display:none}.custom-range-panel label{display:grid;gap:5px;color:var(--muted);font-size:11px;font-weight:700}.custom-range-panel input{min-height:42px;border:1px solid var(--line);border-radius:9px;padding:7px 10px;background:#fff;color:var(--navy);font:inherit}.custom-range-panel button{min-height:42px;padding:0 18px}@media(max-width:640px){.custom-range-panel{grid-template-columns:1fr 1fr}.custom-range-panel button{grid-column:1/-1}}

.history-concept{margin-top:9px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:#f8fafc;display:flex;justify-content:space-between;gap:10px;align-items:center}.history-concept span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.history-concept strong{font-size:13px;font-weight:600;color:var(--navy);text-align:right}.history-actions .history-concept-btn{min-height:40px;border:1px solid var(--line);background:#fff;color:var(--navy);border-radius:10px;font-size:12px;font-weight:600;padding:8px 10px}.history-actions{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:560px){.history-actions{grid-template-columns:1fr}.history-actions .history-concept-btn{min-height:44px}}

/* A waiting operation belongs to the tab, not the synchronization queue. */
.open-sale-waiting-dot{display:inline-block;width:6px;height:6px;margin-inline-start:6px;border-radius:50%;vertical-align:middle;background:color-mix(in srgb,var(--blue) 65%,var(--muted) 35%)}

/* Customer purchase: original transaction and current account are separate. */
.customer-purchase-ticket-btn{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:6px 9px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--blue);font-size:12px;font-weight:400;cursor:pointer}.customer-purchase-ticket-btn:hover,.customer-purchase-ticket-btn:focus-visible{background:var(--bg);outline:1px solid var(--blue)}
#customerPurchaseTicketModal{z-index:160;padding:16px}.purchase-ticket-card{width:min(100%,480px);max-height:calc(100dvh - 32px);display:flex;flex-direction:column;padding:0;overflow:hidden}.purchase-ticket-toolbar,.purchase-ticket-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;flex-shrink:0}.purchase-ticket-toolbar{border-bottom:1px solid var(--line)}.purchase-ticket-toolbar h2{font-size:15px;margin:0;font-weight:500}.purchase-ticket-toolbar button,.purchase-ticket-actions button{min-height:40px;padding:8px 14px;white-space:nowrap}.purchase-ticket-scroll{overflow-y:auto;overscroll-behavior:contain;min-height:0}.purchase-ticket-document{padding:22px;color:var(--navy);overflow-wrap:anywhere}.purchase-ticket-brand{text-align:center}.purchase-ticket-brand img{width:48px;height:48px;object-fit:contain;border-radius:10px}.purchase-ticket-brand h3{margin:8px 0 4px;font-size:21px}.purchase-ticket-brand p{margin:0;color:var(--muted);font-size:13px}.purchase-ticket-reference{display:flex;flex-direction:column;gap:6px;margin:20px 0;font-size:13px}.purchase-ticket-reference time{color:var(--muted)}.purchase-ticket-document h4{margin:20px 0 12px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:500}.purchase-ticket-concept{font-size:14px;white-space:pre-wrap}.purchase-ticket-item{display:flex;justify-content:space-between;align-items:start;gap:16px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}.purchase-ticket-item div{min-width:0}.purchase-ticket-item strong{font-weight:400}.purchase-ticket-item small{display:block;margin-top:4px;color:var(--muted)}.purchase-ticket-item>span{white-space:nowrap}.purchase-ticket-row{display:flex;justify-content:space-between;gap:14px;margin:9px 0;font-size:13px}.purchase-ticket-row strong{font-weight:400;white-space:nowrap}.purchase-ticket-total{padding-top:12px;border-top:1px solid var(--line);font-size:15px}.purchase-ticket-total strong{font-weight:600}.purchase-ticket-status{font-size:13px;color:var(--muted)}.purchase-ticket-status.is-cancelled,.purchase-ticket-warning{color:#99524e}.purchase-ticket-warning{font-size:12px}.purchase-ticket-legend{margin:22px 0 0;padding-top:14px;border-top:1px solid var(--line);color:var(--muted);font-size:11px;text-align:center;line-height:1.5}.purchase-ticket-actions{border-top:1px solid var(--line)}.purchase-ticket-actions span{font-size:12px;color:var(--muted)}.purchase-ticket-copy-fallback{position:fixed;left:0;top:0;opacity:0;width:1px;height:1px}@media(max-width:480px){#customerPurchaseTicketModal{padding:10px}.purchase-ticket-card{max-height:calc(100dvh - 20px)}.purchase-ticket-document{padding:18px}.purchase-ticket-toolbar,.purchase-ticket-actions{padding:12px}}

/* Payment amounts only. Item quantity controls retain their native behavior. */
#cashPendingAmount,#customerPaymentAmount{appearance:textfield;-moz-appearance:textfield}
#cashPendingAmount::-webkit-inner-spin-button,#cashPendingAmount::-webkit-outer-spin-button,#customerPaymentAmount::-webkit-inner-spin-button,#customerPaymentAmount::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.stats-grid>.stat-consultable{position:relative;cursor:pointer;transition:background-color .15s,border-color .15s}
.stats-grid>.stat-consultable:hover,.stats-grid>.stat-consultable:active{background:#f6f9fb;border-color:#aebfcb}
.stats-grid>.stat-consultable:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.stat-consultable>span{padding-right:15px}
.stat-consultable>span>i{position:absolute;right:10px;top:12px;font-size:11px;font-weight:400;opacity:.65}
body.analytics-cash-open{overflow:hidden}
.analytics-cash-card{width:min(100%,620px);max-height:calc(100dvh - 36px);padding:20px;display:flex;flex-direction:column;min-height:0;overflow:hidden}
.analytics-cash-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-shrink:0}
.analytics-cash-heading h2{font-size:20px;font-weight:600}
.analytics-cash-heading p{margin:0;font-size:12px;overflow-wrap:anywhere}
.analytics-cash-heading button{flex-shrink:0;min-height:40px}
.analytics-cash-summary{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);flex-wrap:wrap;flex-shrink:0}
.analytics-cash-summary span{font-size:12px;color:var(--muted)}
.analytics-cash-summary strong{font-size:23px;font-weight:600;overflow-wrap:anywhere;min-width:0}
.analytics-cash-scroll{overflow-y:auto;overscroll-behavior:contain;min-height:0;padding:0 2px;scrollbar-gutter:stable}
.analytics-cash-row{padding:14px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.analytics-cash-row-heading{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:baseline}
.analytics-cash-row-heading strong{font-size:14px;font-weight:600;min-width:0}
.analytics-cash-row-heading .analytics-cash-amount{font-size:17px;font-variant-numeric:tabular-nums}
.analytics-cash-row p{margin:5px 0 0;font-size:13px;white-space:pre-wrap}
.analytics-cash-row p.analytics-cash-meta{font-size:11px}
#analyticsCashStatus{font-size:12px;margin:14px 0}
#moreAnalyticsCashBtn{width:100%;min-height:42px;margin-bottom:4px}
@media(max-width:420px){.analytics-cash-card{padding:16px}.analytics-cash-heading h2{font-size:18px}}
