:root{--bg:#f5f7fb;--card:#fff;--text:#1e293b;--muted:#64748b;--line:#e2e8f0;--accent:#0f766e;--accent2:#115e59;--danger:#b91c1c;--success:#15803d;--shadow:0 8px 26px rgba(15,23,42,.07)}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}a{color:inherit;text-decoration:none}h1{margin:0 0 18px;font-size:clamp(1.55rem,2vw,2rem)}h2{margin:0 0 12px}.muted,small{color:var(--muted)}small{display:block;margin-top:4px}.topbar{height:60px;background:#0f172a;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 22px;position:sticky;top:0;z-index:20}.brand{font-weight:800;font-size:1.15rem;display:flex;align-items:center;gap:9px}.top-logo{width:34px;height:34px;object-fit:contain;border-radius:7px;background:#fff}.topuser{font-size:.9rem;color:#cbd5e1}.shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:calc(100vh - 60px)}.sidebar{background:#111827;padding:16px 12px;display:flex;flex-direction:column;gap:6px}.sidebar a{color:#e5e7eb;padding:11px 12px;border-radius:10px;font-size:.94rem}.sidebar a:hover{background:#1f2937}.sidebar .primary-nav{background:var(--accent);color:#fff;font-weight:750}.content{padding:24px;min-width:0}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:18px;margin-bottom:20px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}.page-head h1{margin-bottom:4px}.btn{border:0;border-radius:10px;background:var(--accent);color:#fff;padding:10px 16px;font-weight:750;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.btn:hover{background:var(--accent2)}.btn.secondary{background:#e2e8f0;color:#334155}.btn.danger{background:var(--danger)}.btn-lg{width:100%;padding:13px}.btn-xl{width:100%;padding:16px;font-size:1.15rem}.alert{padding:12px 15px;border-radius:10px;margin-bottom:16px}.alert.success{background:#dcfce7;color:#166534}.alert.error{background:#fee2e2;color:#991b1b}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--shadow)}.stat span{display:block;color:var(--muted);font-size:.88rem}.stat strong{display:block;font-size:1.7rem;margin-top:8px}.table-wrap{overflow:auto}.table-wrap.card{padding:0}table{width:100%;border-collapse:collapse;min-width:680px}th,td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}th{background:#f8fafc;color:#475569;font-size:.82rem;text-transform:uppercase;letter-spacing:.03em}td small{font-size:.76rem}.link,.link-button{color:var(--accent);font-weight:700}.link-button{border:0;background:none;cursor:pointer;padding:0}.danger-text{color:var(--danger);font-weight:800}.success-text{color:var(--success);font-weight:800}.toolbar{display:flex;gap:8px;margin-bottom:14px}.toolbar input{max-width:420px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid label,.inline-form label,.pos-products label,.pos-cart label,.login-card label{display:flex;flex-direction:column;gap:6px;font-weight:650;font-size:.9rem}.span-2{grid-column:span 2}.check{flex-direction:row!important;align-items:center;gap:8px!important}.check input{width:auto}input,select,textarea{width:100%;border:1px solid #cbd5e1;border-radius:10px;padding:10px 11px;background:#fff;color:#0f172a;font:inherit;outline:none}input:focus,select:focus{border-color:#0f766e;box-shadow:0 0 0 3px rgba(15,118,110,.12)}.actions{display:flex;gap:10px;align-items:center}.inline-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.inline-form label{min-width:220px}.pagination{display:flex;gap:6px;justify-content:center;margin-top:16px}.pagination a{padding:8px 11px;border:1px solid var(--line);border-radius:8px;background:#fff}.pagination a.active{background:var(--accent);color:#fff}.tabs{display:flex;gap:7px;flex-wrap:wrap}.tabs a{background:#fff;border:1px solid var(--line);padding:8px 10px;border-radius:8px}.login-bg{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(135deg,#0f172a,#134e4a)}.login-card{width:min(420px,100%);background:#fff;padding:28px;border-radius:20px;box-shadow:0 24px 60px rgba(0,0,0,.3)}.login-card h1{margin-bottom:4px}.login-card label{margin:14px 0}.center-card{width:min(520px,calc(100% - 32px));margin:12vh auto;background:#fff;padding:30px;border-radius:18px;box-shadow:var(--shadow)}.search-results{display:none;position:relative;border:1px solid var(--line);border-radius:10px;background:#fff;max-height:260px;overflow:auto;z-index:10}.search-results.open{display:block}.search-item{width:100%;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left;padding:11px;cursor:pointer}.search-item:hover{background:#f1f5f9}.search-item span{display:block;color:var(--muted);font-size:.82rem;margin-top:3px}.logo-preview{max-height:80px;max-width:180px;object-fit:contain;margin-top:8px}.pos-grid{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(560px,1.4fr);gap:18px;align-items:start}.touch-input{font-size:1.05rem;padding:14px}.pos-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px;max-height:62vh;overflow:auto}.product-tile{min-height:105px;border:1px solid var(--line);background:#fff;border-radius:13px;padding:13px;text-align:left;cursor:pointer;display:flex;flex-direction:column;justify-content:center;gap:4px}.product-tile:hover{border-color:#0f766e;background:#f0fdfa}.product-tile:disabled{opacity:.45;cursor:not-allowed}.product-tile strong{font-size:1rem}.product-tile span{font-size:1.12rem;color:var(--accent);font-weight:800}.empty{color:var(--muted);padding:14px}.cart-head{display:flex;justify-content:space-between;align-items:center}.cart-head h2{margin:0}.cart-table{min-width:700px}.mini{min-width:86px;padding:8px}.icon-btn{border:0;background:#fee2e2;color:#991b1b;border-radius:8px;font-size:1.2rem;cursor:pointer;width:34px;height:34px}.totals{border-top:2px solid var(--line);margin-top:12px;padding-top:10px}.totals>div,.summary-card>div{display:flex;justify-content:space-between;padding:6px 2px}.totals .grand,.summary-card .grand{font-size:1.3rem;border-top:1px solid var(--line);margin-top:4px;padding-top:11px}.change-box{font-size:1.15rem;background:#ecfeff;border:1px solid #a5f3fc;border-radius:10px;padding:12px;margin:10px 0 12px}.summary-card{margin-left:auto;width:min(420px,100%);background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:var(--shadow)}
@media(max-width:1050px){.pos-grid{grid-template-columns:1fr}.pos-products{position:static}.stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.topbar{padding:0 14px}.topuser{display:none}.shell{display:block}.sidebar{position:sticky;top:60px;z-index:15;flex-direction:row;overflow:auto;padding:8px;background:#111827}.sidebar a{white-space:nowrap;padding:9px 11px}.content{padding:14px}.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.stats{grid-template-columns:1fr 1fr}.page-head{flex-direction:column}.pos-results{grid-template-columns:1fr 1fr}.card{padding:14px;border-radius:13px}.pos-cart .table-wrap{margin:0 -14px;padding:0 14px}.btn{min-height:42px}}
@media(max-width:480px){.stats{grid-template-columns:1fr}.pos-results{grid-template-columns:1fr}.content{padding:10px}.toolbar{flex-direction:column}.toolbar input{max-width:none}}
.logout-form{margin:0}.logout-form button{width:100%;border:0;background:transparent;color:#e5e7eb;padding:11px 12px;border-radius:10px;font:inherit;text-align:left;cursor:pointer}.logout-form button:hover{background:#1f2937}.status{display:inline-block;padding:4px 8px;border-radius:999px;font-size:.78rem;font-weight:800}.status.ok{background:#dcfce7;color:#166534}.status.void{background:#fee2e2;color:#991b1b}.void-form{margin-top:20px;display:flex;gap:12px;align-items:end}.void-form label{flex:1;display:flex;flex-direction:column;gap:6px;font-weight:650}@media(max-width:760px){.void-form{flex-direction:column;align-items:stretch}.logout-form{min-width:max-content}.logout-form button{white-space:nowrap;padding:9px 11px}}

/* v2.2 roles/import */
.roles-layout{display:grid;grid-template-columns:minmax(340px,1fr) minmax(420px,1.2fr);gap:18px;align-items:start}.permission-groups{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.permission-groups fieldset{border:1px solid #d9dee7;border-radius:10px;padding:12px}.permission-groups legend{font-weight:700;padding:0 6px}.permission-item{align-items:flex-start;margin:8px 0}.permission-item small{display:block;margin-left:6px;color:#6b7280}.template-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:14px 0}.btn.small{padding:7px 10px;font-size:.9rem}.inline-form{display:inline}.row-actions{white-space:nowrap}.import-guide{margin-bottom:18px}.error-list{margin:0;padding-left:22px}.error-list li{margin:6px 0}.alert.info{background:#eef6ff;border:1px solid #c7defa;color:#1e4d7a}.alert.compact{padding:10px 12px;margin:12px 0}
@media(max-width:900px){.roles-layout{grid-template-columns:1fr}.permission-groups{grid-template-columns:1fr}}

/* v2.3 reports */
.report-tabs{margin-bottom:16px}.report-tabs a.active{background:var(--accent);color:#fff;border-color:var(--accent)}.report-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.report-filter{display:grid;grid-template-columns:2fr 1.3fr 1.2fr auto;gap:12px;align-items:end}.report-filter label{display:flex;flex-direction:column;gap:6px;font-weight:650;font-size:.9rem}.warning-text{color:#b45309;font-weight:800}
@media(max-width:900px){.report-filter{grid-template-columns:1fr 1fr}.report-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.report-filter,.report-stats{grid-template-columns:1fr}}
@media print{.topbar,.sidebar,.no-print{display:none!important}.shell{display:block}.content{padding:0}.card,.stat{box-shadow:none}.report-tabs{display:none}body{background:#fff}.table-wrap{overflow:visible}table{min-width:0;font-size:11px}th,td{padding:6px 7px}.stats{break-inside:avoid}.card{break-inside:auto}}

/* v2.4 tablet / responsive UI only */
html,body{max-width:100%;overflow-x:hidden}.topbar-left{display:flex;align-items:center;gap:10px;min-width:0}.menu-toggle{display:none;width:44px;height:44px;border:0;border-radius:10px;background:#1e293b;color:#fff;font-size:1.35rem;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto}.menu-toggle:hover{background:#334155}.nav-overlay{display:none}.sidebar{overflow-y:auto}.content{width:100%;max-width:100%}.pos-grid{grid-template-columns:minmax(280px,.78fr) minmax(0,1.5fr)}.pos-cart{min-width:0}.pos-cart .table-wrap{max-width:100%}.cart-table{width:100%}

@media(max-width:1100px){
  .menu-toggle{display:inline-flex}.topbar{padding-left:12px;padding-right:16px}.shell{display:block;min-height:calc(100vh - 60px)}
  .sidebar{position:fixed;top:60px;left:0;bottom:0;width:min(300px,86vw);z-index:45;transform:translateX(-105%);transition:transform .2s ease;box-shadow:12px 0 30px rgba(15,23,42,.25);padding:16px 12px;flex-direction:column;overflow-y:auto;overscroll-behavior:contain}
  .sidebar a{white-space:normal;min-height:44px;display:flex;align-items:center}.logout-form button{min-height:44px;white-space:normal}
  body.menu-open .sidebar{transform:translateX(0)}body.menu-open{overflow:hidden}.nav-overlay{display:block;position:fixed;inset:60px 0 0 0;background:rgba(15,23,42,.48);z-index:40;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s ease}body.menu-open .nav-overlay{opacity:1;visibility:visible;pointer-events:auto}
  .content{padding:18px}.topuser{max-width:44vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}

@media(min-width:921px) and (max-width:1100px){
  .pos-grid{grid-template-columns:minmax(260px,.72fr) minmax(0,1.45fr);gap:14px}.pos-results{grid-template-columns:1fr}.card{padding:16px}.cart-table{min-width:620px}.mini{min-width:72px;width:100%}th,td{padding:10px 9px}
}

@media(max-width:920px){
  .pos-grid{grid-template-columns:1fr}.pos-products,.pos-cart{width:100%}.pos-results{grid-template-columns:repeat(2,minmax(0,1fr));max-height:44vh}.cart-table{min-width:660px}.content{padding:14px}.card{margin-bottom:14px}.touch-input{min-height:48px}
}

@media(max-width:720px){
  .topbar{height:56px}.sidebar{top:56px}.nav-overlay{inset:56px 0 0}.shell{min-height:calc(100vh - 56px)}.brand{font-size:1rem}.top-logo{width:30px;height:30px}.topuser{display:none}.content{padding:10px}.card{padding:12px;border-radius:12px}.pos-results{grid-template-columns:1fr 1fr;max-height:38vh}.product-tile{min-height:92px;padding:11px}.cart-head{gap:8px}.cart-head h2{font-size:1.25rem}
  .pos-cart .table-wrap{overflow:visible;margin:0}.cart-table{min-width:0}.cart-table thead{display:none}.cart-table,.cart-table tbody,.cart-table tr,.cart-table td{display:block;width:100%}.cart-table tr{border:1px solid var(--line);border-radius:12px;padding:10px;margin:10px 0;background:#fff}.cart-table td{border:0;padding:6px 0;display:grid;grid-template-columns:88px minmax(0,1fr);gap:8px;align-items:center}.cart-table td::before{content:attr(data-label);font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-weight:800}.cart-table td:first-child{display:block;padding-top:2px;padding-bottom:9px;border-bottom:1px solid var(--line);margin-bottom:4px}.cart-table td:first-child::before{display:none}.cart-table .cart-remove{display:flex;justify-content:flex-end;padding-top:4px}.cart-table .cart-remove::before{display:none}.mini{width:100%;min-width:0;min-height:44px}.icon-btn{width:44px;height:44px}.totals{margin-top:8px}.totals>div{padding:7px 2px}.change-box{min-height:48px;display:flex;align-items:center;justify-content:space-between}.btn-xl{min-height:52px}.touch-input{font-size:1rem}
}

@media(max-width:430px){.pos-results{grid-template-columns:1fr}.product-tile{min-height:82px}.content{padding:8px}.card{padding:10px}.cart-table td{grid-template-columns:78px minmax(0,1fr)}}

/* Hybrid v3 login */
.login-logo{display:block;max-width:120px;max-height:80px;object-fit:contain;margin:0 auto 12px}.small{font-size:.82rem}

/* v3.2 updater */
.update-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.update-grid{display:grid;grid-template-columns:2fr repeat(4,minmax(120px,1fr));gap:12px;margin:14px 0}.update-grid>div{border:1px solid var(--line);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:4px}.hash-line{display:block;overflow-wrap:anywhere;font-size:.78rem}.check-list{display:grid;gap:8px;margin:12px 0}.check-row{border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;justify-content:space-between;gap:12px}.check-row.ok{background:#f0fdf4;border-color:#bbf7d0}.check-row.warn{background:#fffbeb;border-color:#fde68a}.check-row.bad{background:#fef2f2;border-color:#fecaca}.check-row span{color:var(--muted);text-align:right}.update-init{max-width:720px}.update-init form{max-width:520px}
@media(max-width:900px){.update-grid{grid-template-columns:1fr 1fr}.update-stats{grid-template-columns:1fr 1fr}.check-row{flex-direction:column}.check-row span{text-align:left}}
@media(max-width:560px){.update-grid,.update-stats{grid-template-columns:1fr}}


/* v3.3 SaaS plans/modules/subscriptions */
.module-picker{border-top:1px solid var(--line);padding-top:12px}.addon-grid{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px}.compact-form{flex-wrap:nowrap}.compact-form select{min-width:120px}.subscription-alert{margin-bottom:18px}.status.warn{background:#fef3c7;color:#92400e}
@media(max-width:760px){.compact-form{flex-wrap:wrap}.addon-grid{flex-direction:column;gap:8px}}


/* v3.4 cash */
.cash-two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.cash-session-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.cash-breakdown{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.cash-breakdown span{border:1px solid var(--line);border-radius:10px;padding:10px;color:var(--muted);font-size:.85rem}.cash-breakdown strong{display:block;color:var(--text);font-size:1.05rem;margin-top:4px}.cash-open-card{max-width:760px}.cash-stats{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:900px){.cash-two-col{grid-template-columns:1fr}.cash-breakdown{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.cash-breakdown,.cash-stats{grid-template-columns:1fr}}

/* v3.4.5 UI/UX responsive polish */
:root{
  --accent-soft:#ecfdf5;
  --accent-border:#99f6e4;
  --danger-soft:#fef2f2;
  --danger-border:#fecaca;
  --surface-soft:#f8fafc;
  --focus-ring:0 0 0 3px rgba(15,118,110,.14);
}

button,a,input,select,textarea{transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease,color .16s ease,transform .08s ease}
.btn{gap:7px;min-height:40px;box-shadow:0 1px 2px rgba(15,23,42,.08)}
.btn:active,.link-button:active{transform:translateY(1px)}
.btn:focus-visible,.link-button:focus-visible,.icon-btn:focus-visible,.action-menu summary:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.btn.secondary{border:1px solid #cbd5e1;background:#fff;color:#334155}
.btn.secondary:hover{background:#f8fafc;border-color:#94a3b8}
.btn.danger{border:1px solid #991b1b}
.btn.small{min-height:34px;padding:6px 10px;border-radius:9px;font-size:.84rem}

/* Acciones compactas: reemplaza los enlaces sueltos por controles consistentes. */
.row-actions{display:flex;align-items:center;flex-wrap:wrap;gap:7px;white-space:normal;min-width:0}
.row-actions .inline-form{display:inline-flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0;min-width:0}
.row-actions .compact-form{display:grid;grid-template-columns:minmax(120px,1fr) auto;gap:7px;align-items:center;width:min(330px,100%)}
.row-actions .compact-form select{min-width:0;width:100%}
.link-button{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:6px 10px;border:1px solid var(--accent-border);border-radius:9px;background:var(--accent-soft);color:var(--accent2);font-size:.84rem;font-weight:800;line-height:1.15;cursor:pointer;white-space:normal;text-align:center}
.link-button:hover{background:#ccfbf1;border-color:#5eead4;color:#134e4a}
.link-button.danger-text,.danger-text.link-button{background:var(--danger-soft);border-color:var(--danger-border);color:#991b1b}
.link-button.danger-text:hover,.danger-text.link-button:hover{background:#fee2e2;border-color:#fca5a5}
.row-actions .muted.small{display:inline-flex;align-items:center;min-height:34px;padding:6px 9px;border-radius:9px;background:#f1f5f9;color:#64748b;margin:0}

/* Evita que controles y contenido fuerzen anchos innecesarios. */
input,select,textarea{min-width:0}
th,td{overflow-wrap:anywhere}
.table-wrap{max-width:100%;scrollbar-width:thin;scrollbar-color:#94a3b8 transparent}
.table-wrap::-webkit-scrollbar{height:8px;width:8px}
.table-wrap::-webkit-scrollbar-thumb{background:#94a3b8;border-radius:999px}
.table-wrap::-webkit-scrollbar-track{background:transparent}
.table-wrap table:not(.cart-table){width:100%;min-width:0}
.table-wrap table:not(.cart-table) th,.table-wrap table:not(.cart-table) td{max-width:360px}
.table-wrap table:not(.cart-table) td.row-actions{max-width:420px}

/* Formularios inline mantienen layout flexible; el override histórico ya no los fuerza a display:inline. */
.card.inline-form,.report-filter.inline-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap}
.card.inline-form label{min-width:min(260px,100%);flex:1 1 220px}
.card.inline-form .btn{flex:0 0 auto}

/* Tablas responsivas: app.js agrega data-label según encabezados. */
@media(max-width:900px){
  .table-wrap{overflow:visible}
  .responsive-table{display:block;width:100%;min-width:0!important;border-collapse:separate;border-spacing:0}
  .responsive-table thead{display:none}
  .responsive-table tbody{display:grid;gap:12px}
  .responsive-table tr{display:block;width:100%;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:0 2px 10px rgba(15,23,42,.04);overflow:hidden}
  .responsive-table td{display:grid;grid-template-columns:minmax(115px,34%) minmax(0,1fr);gap:12px;align-items:center;width:100%;max-width:none!important;border:0;border-bottom:1px solid var(--line);padding:10px 12px;text-align:left}
  .responsive-table td:last-child{border-bottom:0}
  .responsive-table td::before{content:attr(data-label);color:#64748b;font-size:.72rem;line-height:1.2;font-weight:850;text-transform:uppercase;letter-spacing:.035em}
  .responsive-table td[data-label=""],.responsive-table td[colspan]{display:block}
  .responsive-table td[data-label=""]::before,.responsive-table td[colspan]::before{display:none}
  .responsive-table td.row-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
  .responsive-table td.row-actions::before{content:attr(data-label);flex:0 0 100%;margin-bottom:1px}
  .responsive-table td.row-actions .compact-form{width:100%;grid-template-columns:minmax(0,1fr) auto}
  .responsive-table td.row-actions .inline-form:not(.compact-form){display:inline-flex;width:auto}
  .responsive-table .link-button{min-height:38px;padding:8px 11px}
  .card.table-wrap{padding:14px}
  .card.table-wrap>h2,.card.table-wrap>.page-head{margin-bottom:12px}
}

@media(max-width:560px){
  .responsive-table td{grid-template-columns:1fr;gap:4px;padding:10px 11px}
  .responsive-table td::before{margin-bottom:2px}
  .responsive-table td.row-actions{display:grid;grid-template-columns:1fr 1fr}
  .responsive-table td.row-actions::before{grid-column:1/-1}
  .responsive-table td.row-actions>*{width:100%}
  .responsive-table td.row-actions .compact-form{grid-column:1/-1;grid-template-columns:1fr}
  .responsive-table td.row-actions .compact-form .btn{width:100%}
  .responsive-table td.row-actions .inline-form:not(.compact-form){display:block}
  .responsive-table td.row-actions .link-button{width:100%}
  .actions{flex-wrap:wrap}
  .actions>.btn,.actions>a.btn{flex:1 1 160px}
  .card.inline-form{align-items:stretch}
  .card.inline-form .btn{width:100%}
}

/* v3.5.0 bitácora y logs */
.audit-filter,.log-filter{display:grid;grid-template-columns:minmax(180px,1.6fr) repeat(4,minmax(140px,1fr));gap:12px;align-items:end}
.audit-filter label,.log-filter label{display:flex;flex-direction:column;gap:6px;font-weight:650;font-size:.88rem}
.audit-filter .actions,.log-filter .actions{align-self:end;flex-wrap:wrap}
.audit-detail summary{color:var(--accent);font-weight:800;cursor:pointer}.audit-detail pre{white-space:pre-wrap;word-break:break-word;max-width:520px;background:#f8fafc;border:1px solid var(--line);padding:9px;border-radius:9px;font-size:.76rem}.cursor-pagination{display:flex;justify-content:space-between;gap:10px;margin-top:14px}.log-list{padding:0;overflow:hidden}.log-row{padding:14px 16px;border-bottom:1px solid var(--line);background:#fff}.log-row:last-child{border-bottom:0}.log-row pre{margin:8px 0 0;white-space:pre-wrap;word-break:break-word;font:500 .82rem/1.45 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.log-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.log-head code{font-size:.78rem;color:var(--muted)}.log-row.level-error,.log-row.level-critical{border-left:4px solid #dc2626}.log-row.level-warning{border-left:4px solid #d97706}.log-row.level-info{border-left:4px solid #0f766e}
@media(max-width:1050px){.audit-filter,.log-filter{grid-template-columns:1fr 1fr 1fr}.audit-filter .actions,.log-filter .actions{grid-column:1/-1}}
@media(max-width:700px){.audit-filter,.log-filter{grid-template-columns:1fr}.audit-filter .actions,.log-filter .actions{grid-column:auto}.cursor-pagination{flex-direction:column}.cursor-pagination .btn{width:100%}.log-head{align-items:flex-start;flex-direction:column}}

/* v3.5.1 dashboard empresarial y redondeo comercial */
.setting-section{border-top:1px solid var(--line);padding-top:8px;margin-top:2px}.setting-section h2{margin-bottom:4px}.rounding-example,.price-preview{border:1px solid var(--line);border-radius:12px;background:#f8fafc;padding:12px 14px;display:flex;flex-direction:column;justify-content:center;gap:3px}.rounding-example span,.price-preview span,.eyebrow{font-size:.74rem;text-transform:uppercase;letter-spacing:.045em;color:var(--muted);font-weight:850}.rounding-example strong,.price-preview strong{font-size:1.08rem}.dashboard-head{align-items:center}.quick-actions{display:flex;gap:8px;flex-wrap:wrap}.business-overview{display:grid;grid-template-columns:1.4fr 1fr .8fr 1.15fr;gap:0;padding:0;overflow:hidden}.business-overview>div{padding:16px 18px;border-right:1px solid var(--line);min-width:0}.business-overview>div:last-child{border-right:0}.business-overview strong{display:block;margin-top:5px;font-size:1.08rem;overflow-wrap:anywhere}.business-overview small{margin-top:5px}.dashboard-stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}.dashboard-card{margin-bottom:0;min-width:0}.dashboard-chart-card{grid-column:span 2}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.section-head h2{margin-bottom:3px}.sales-bars{height:235px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;align-items:end;padding-top:18px}.sales-bar-item{height:100%;display:grid;grid-template-rows:auto 1fr auto;gap:6px;min-width:0;text-align:center}.sales-bar-value{font-size:.72rem;font-weight:750;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sales-bar-track{height:100%;min-height:125px;background:#f1f5f9;border:1px solid var(--line);border-radius:10px;position:relative;overflow:hidden;display:flex;align-items:flex-end}.sales-bar-track span{display:block;width:100%;background:linear-gradient(180deg,#14b8a6,var(--accent));border-radius:9px 9px 0 0;min-height:4px}.sales-bar-item small{font-weight:750;margin:0}.rank-list{display:grid;gap:8px}.rank-row{display:flex;align-items:center;gap:11px;padding:10px;border:1px solid var(--line);border-radius:11px;background:#fff}.rank-number{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:var(--accent-soft);color:var(--accent2);font-weight:900;flex:0 0 auto}.rank-row strong{display:block}.mini-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}.mini-metrics>div{border:1px solid var(--line);border-radius:11px;padding:11px;background:#f8fafc}.mini-metrics span{display:block;color:var(--muted);font-size:.78rem}.mini-metrics strong{display:block;font-size:1.1rem;margin-top:4px}.compact-list{display:grid;border-top:1px solid var(--line)}.compact-list>a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 2px;border-bottom:1px solid var(--line)}.compact-list>a:hover{color:var(--accent2)}.compact-list>a>span{min-width:0}.compact-list small{margin-top:2px}.compact-list strong{flex:0 0 auto}
@media(max-width:1050px){.business-overview{grid-template-columns:1fr 1fr}.business-overview>div{border-bottom:1px solid var(--line)}.business-overview>div:nth-child(2n){border-right:0}.business-overview>div:nth-last-child(-n+2){border-bottom:0}}
@media(max-width:820px){.dashboard-grid{grid-template-columns:1fr}.dashboard-chart-card{grid-column:auto}.sales-bars{height:205px;gap:6px}.sales-bar-value{display:none}.quick-actions{width:100%}.quick-actions .btn{flex:1 1 140px}}
@media(max-width:560px){.business-overview{grid-template-columns:1fr}.business-overview>div{border-right:0!important;border-bottom:1px solid var(--line)!important}.business-overview>div:last-child{border-bottom:0!important}.sales-bars{height:180px;gap:4px}.sales-bar-track{min-height:100px}.sales-bar-item small{font-size:.68rem}.mini-metrics{grid-template-columns:1fr 1fr}}

/* v3.5.2 presentaciones de producto */
.presentation-editor{border-top:1px solid var(--line);padding-top:16px;margin-top:6px}.presentation-editor .section-head{align-items:center}.presentation-list{display:grid;gap:12px;margin-top:14px}.presentation-row{display:grid;grid-template-columns:1.25fr .7fr 1fr 1fr .65fr .8fr .9fr auto;gap:10px;align-items:end;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fbfdff}.presentation-row label{min-width:0}.presentation-cost{border:1px solid var(--line);background:#f8fafc;border-radius:10px;padding:10px;min-height:62px}.presentation-cost span{display:block;color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase}.presentation-cost strong{display:block;margin-top:5px}.callout.info{background:#eff6ff;border:1px solid #bfdbfe;color:#1e3a5f;padding:11px 13px;border-radius:11px;margin-top:10px}.product-tile span{display:block}.product-tile small{display:block;margin-top:3px}.search-item span{display:block;color:var(--muted);font-size:.8rem;margin-top:3px}
@media(max-width:1200px){.presentation-row{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:760px){.presentation-row{grid-template-columns:repeat(2,minmax(0,1fr))}.presentation-row .presentation-remove{grid-column:span 2}.presentation-editor .section-head{align-items:flex-start;flex-direction:column}}
@media(max-width:480px){.presentation-row{grid-template-columns:1fr}.presentation-row .presentation-remove{grid-column:auto}}

/* v3.6.1 - estado visual de monto recibido */
.change-box.shortage{background:var(--danger-soft,#fef2f2);border-color:var(--danger-border,#fecaca);color:#991b1b}
.change-box.shortage strong{color:#991b1b}
.change-box.ready{background:#f0fdf4;border-color:#bbf7d0;color:#166534}
.change-box.ready strong{color:#166534}

/* v3.6.2 - selector de modo de Caja */
.cash-mode-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}
.choice-card{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--border,#d7dce2);border-radius:12px;padding:14px;background:var(--card,#fff);cursor:pointer;min-width:0}
.choice-card:hover{border-color:#9aa7b6;box-shadow:0 2px 8px rgba(0,0,0,.05)}
.choice-card input[type="radio"]{width:auto;min-width:auto;margin:3px 0 0;flex:0 0 auto}
.choice-card span{display:flex;flex:1 1 auto;min-width:0;flex-direction:column;gap:4px}
.choice-card strong{display:block;line-height:1.25;overflow-wrap:anywhere}
.choice-card small{color:var(--muted,#68707d);line-height:1.4;overflow-wrap:anywhere}
.choice-card:has(input:checked){border-color:var(--accent);background:var(--accent-soft,#ecfdf5);box-shadow:0 0 0 2px rgba(15,118,110,.08)}
@media(max-width:820px){.cash-mode-options{grid-template-columns:1fr}}

/* v3.6.3 - corrige radio inputs heredando width:100% en tarjetas de Caja */
@media(max-width:1100px) and (min-width:821px){.cash-mode-options{grid-template-columns:1fr 1fr}.cash-mode-options .choice-card:last-child{grid-column:1/-1}}

/* v3.6.4 - cierre pendiente por cambio de día + dashboard Superadmin */
/* v3.6.5 - optimización de rendimiento, cache corto e índices */
.alert.warning{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412}
.cash-stale-alert{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid #fecaca}
.cash-stale-alert strong{flex:0 0 auto}.cash-stale-alert span{flex:1 1 360px}.cash-stale-alert .btn{margin-left:auto}
.platform-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:0;overflow:hidden}
.platform-overview>div{padding:16px 18px;border-right:1px solid var(--line);min-width:0}
.platform-overview>div:last-child{border-right:0}.platform-overview strong{display:block;font-size:1.28rem;margin-top:5px}.platform-overview small{margin-top:5px}
.platform-alert-stats{grid-template-columns:repeat(5,minmax(150px,1fr))}
.platform-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.platform-company-list>a{align-items:flex-start}.platform-company-plan{text-align:right;min-width:130px}.platform-company-plan small{white-space:nowrap}
@media(max-width:1150px){.platform-alert-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.platform-overview{grid-template-columns:1fr 1fr}.platform-overview>div{border-bottom:1px solid var(--line)}.platform-overview>div:nth-child(2n){border-right:0}.platform-overview>div:nth-last-child(-n+2){border-bottom:0}}
@media(max-width:820px){.platform-dashboard-grid{grid-template-columns:1fr}.cash-stale-alert{align-items:flex-start}.cash-stale-alert .btn{margin-left:0}.platform-alert-stats{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.platform-overview{grid-template-columns:1fr}.platform-overview>div{border-right:0!important;border-bottom:1px solid var(--line)!important}.platform-overview>div:last-child{border-bottom:0!important}.platform-alert-stats{grid-template-columns:1fr}.platform-company-list>a{flex-direction:column;align-items:flex-start}.platform-company-plan{text-align:left;min-width:0}}

/* v3.7.0 - módulo Compras + integración condicional con Farmacia */
.purchase-header{align-items:end}.purchase-search-label{display:flex;flex-direction:column;gap:7px;font-weight:700;position:relative}.purchase-search-results{position:absolute;left:0;right:0;top:74px;z-index:30;box-shadow:var(--shadow)}.purchase-lines-wrap{margin-top:14px}.purchase-lines{min-width:1120px}.purchase-lines td{vertical-align:top}.purchase-lines td:first-child{min-width:250px}.purchase-lines input,.purchase-lines select{min-width:105px}.purchase-lines td:first-child select{margin-top:7px;min-width:220px}.purchase-lot-cell{min-width:190px}.purchase-lot-cell input{margin-bottom:6px;min-width:170px}.purchase-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:0;overflow:hidden}.purchase-summary>div{padding:16px 18px;border-right:1px solid var(--line)}.purchase-summary>div:last-child{border-right:0}.purchase-summary span,.purchase-totals-detail span{display:block;color:var(--muted);font-size:.78rem;text-transform:uppercase;font-weight:800}.purchase-summary strong{display:block;font-size:1.22rem;margin-top:5px}.purchase-summary .purchase-grand{background:#f0fdfa}.purchase-summary .purchase-grand strong{font-size:1.45rem;color:var(--accent2)}.purchase-submit{justify-content:flex-end;margin-bottom:22px}.purchase-submit .btn{max-width:440px}.purchase-overview{grid-template-columns:repeat(4,minmax(0,1fr))}.purchase-totals-detail{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.purchase-totals-detail>div{border:1px solid var(--line);border-radius:11px;padding:12px;background:#f8fafc}.purchase-totals-detail strong{display:block;font-size:1.15rem;margin-top:5px}.danger-zone{border-color:#fecaca}.danger-zone h2{color:#991b1b}
@media(max-width:820px){.purchase-summary,.purchase-overview,.purchase-totals-detail{grid-template-columns:1fr 1fr}.purchase-summary>div:nth-child(2){border-right:0}.purchase-summary>div{border-bottom:1px solid var(--line)}.purchase-summary>div:nth-last-child(-n+2){border-bottom:0}.purchase-submit .btn{max-width:none}}
@media(max-width:520px){.purchase-summary,.purchase-overview,.purchase-totals-detail{grid-template-columns:1fr}.purchase-summary>div{border-right:0!important;border-bottom:1px solid var(--line)!important}.purchase-summary>div:last-child{border-bottom:0!important}}

/* v3.8.0 - Cuentas por Pagar + endurecimiento modular */
.ap-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.ap-toolbar select{max-width:190px}.ap-inline-payment{padding:0;border:0;background:transparent;box-shadow:none}.ap-payment-lines input{min-width:125px}.ap-payment-total{text-align:right}.ap-payment-total span{display:block;color:var(--muted);font-size:.78rem;font-weight:800;text-transform:uppercase}.ap-payment-total strong{display:block;font-size:1.55rem;margin-top:5px;color:var(--accent2)}.ap-purchase-status .mini-metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin:0}
@media(max-width:820px){.ap-overview,.ap-purchase-status .mini-metrics{grid-template-columns:1fr 1fr}.ap-toolbar select{max-width:none}}
@media(max-width:520px){.ap-overview,.ap-purchase-status .mini-metrics{grid-template-columns:1fr}}

/* v3.8.1 - diferenciación visual discreta de resultados POS (tablet-first) */
.product-tile{
  --tile-accent:var(--accent);
  --tile-wash:#f8fafc;
  border-left:4px solid var(--tile-accent);
  background:linear-gradient(90deg,var(--tile-wash) 0,#fff 58%);
  transition:border-color .14s ease,box-shadow .14s ease,background .14s ease,transform .08s ease;
}
.product-tile span{color:var(--tile-accent)}
.product-tile.product-tone-0{--tile-accent:#0f766e;--tile-wash:#f0fdfa}
.product-tile.product-tone-1{--tile-accent:#2563eb;--tile-wash:#eff6ff}
.product-tile.product-tone-2{--tile-accent:#7c3aed;--tile-wash:#f5f3ff}
.product-tile.product-tone-3{--tile-accent:#c2410c;--tile-wash:#fff7ed}
.product-tile.product-tone-4{--tile-accent:#be123c;--tile-wash:#fff1f2}
.product-tile.product-tone-5{--tile-accent:#4d7c0f;--tile-wash:#f7fee7}
.product-tile:hover{border-color:var(--tile-accent);background:var(--tile-wash)}
.product-tile:focus-visible{outline:3px solid rgba(15,118,110,.18);outline-offset:2px}
.product-tile:active:not(:disabled){transform:scale(.99)}
@media(hover:hover){.product-tile:hover:not(:disabled){box-shadow:0 5px 14px rgba(15,23,42,.09)}}
@media(max-width:920px){.product-tile{min-height:96px}}
@media(max-width:720px){.product-tile{min-height:88px;padding:10px 11px}.product-tile strong{font-size:.96rem}.product-tile span{font-size:1.04rem}}
@media(max-width:430px){.product-tile{min-height:78px}}


/* v3.8.2 - feedback discreto de cantidad/stock en carrito POS */
.pos-cart-notice{margin:10px 0 2px;padding:9px 11px;border-radius:9px;background:#eff6ff;border:1px solid #bfdbfe;color:#1e3a5f;font-size:.86rem;font-weight:700}
.pos-cart-notice.warning{background:#fff7ed;border-color:#fed7aa;color:#9a3412}
.pos-cart-notice[hidden]{display:none!important}
@media(max-width:720px){.pos-cart-notice{font-size:.82rem;padding:8px 9px;margin-top:8px}}
