:root{--bg:#f5f7fb;--panel:#fff;--text:#172033;--muted:#788397;--line:#e8ebf1;--primary:#1267e8;--brand-dark:#0f172a;--primary-soft:color-mix(in srgb,var(--primary) 10%,white);--success:#087a55;--danger:#b42318;--warning:#b54708;--shadow:0 12px 32px rgba(15,23,42,.055)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px}a{color:var(--primary);text-decoration:none}button,input,select,textarea{font:inherit}.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:var(--brand-dark);color:#fff;display:flex;flex-direction:column;padding:22px 14px;z-index:30;overflow-y:auto}.logo{display:flex;align-items:center;gap:12px;padding:0 10px 20px}.logo>span,.brand-mark{width:43px;height:43px;display:grid;place-items:center;border-radius:13px;background:linear-gradient(135deg,var(--primary),#34b4ff);font-size:22px;font-weight:900;color:#fff;box-shadow:0 8px 20px color-mix(in srgb,var(--primary) 32%,transparent)}.logo img{width:45px;height:45px;object-fit:contain;border-radius:11px;background:#fff;padding:3px}.logo div{display:flex;flex-direction:column;min-width:0}.logo strong{font-size:15px}.logo small,.sidebar-user small{color:#93a0b5;margin-top:2px}.nav-group{display:grid;gap:4px;margin-bottom:17px}.nav-group>small{padding:0 12px 6px;color:#748197;text-transform:uppercase;letter-spacing:.09em;font-size:9px;font-weight:800}.sidebar nav a{display:flex;align-items:center;gap:11px;color:#b8c2d1;padding:10px 11px;border-radius:11px;font-weight:650;transition:.18s}.sidebar nav a i{width:27px;height:27px;display:grid;place-items:center;border-radius:8px;background:rgba(255,255,255,.055);font-style:normal;color:#dce4ef}.sidebar nav a:hover{background:rgba(255,255,255,.065);color:#fff}.sidebar nav a.active{background:#fff;color:var(--brand-dark);box-shadow:0 10px 25px rgba(0,0,0,.12)}.sidebar nav a.active i{background:var(--primary-soft);color:var(--primary)}.sidebar-user{margin-top:auto;border-top:1px solid rgba(255,255,255,.08);padding:16px 10px 0;display:flex;flex-direction:column;gap:4px}.sidebar-user a{margin-top:8px;color:#ffb4ae;font-size:12px}.content{min-height:100vh;margin-left:248px;padding:26px 30px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.topbar-title{display:flex;align-items:center;gap:12px}.topbar h1{margin:0;font-size:26px;letter-spacing:-.03em}.topbar p{margin:5px 0 0;color:var(--muted)}.menu-btn{display:none;border:0;background:#fff;border-radius:10px;padding:9px 11px}.branch-switcher label{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:12px;font-weight:700}.branch-switcher select{min-width:205px}.panel,.stats article,.branch-card,.welcome-card,.closing-header,.closing-summary article{background:var(--panel);border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow)}.panel{padding:20px;margin-bottom:20px}.panel h2{margin:0;font-size:18px;letter-spacing:-.015em}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:16px}.panel-head p{margin:5px 0 0;color:var(--muted);font-size:12px}.welcome-card{display:flex;justify-content:space-between;align-items:center;padding:27px 29px;margin-bottom:18px;background:linear-gradient(135deg,var(--brand-dark),color-mix(in srgb,var(--brand-dark) 65%,var(--primary)));color:#fff;border:0;overflow:hidden;position:relative}.welcome-card:after{content:"";position:absolute;width:240px;height:240px;border-radius:50%;background:rgba(255,255,255,.06);right:-70px;top:-120px}.welcome-card h2{font-size:27px;margin:4px 0}.welcome-card p{margin:0;color:#ccd6e5}.eyebrow{text-transform:uppercase;letter-spacing:.11em;font-size:9px;font-weight:900;opacity:.76}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);border-radius:10px;padding:10px 14px;background:#fff;color:var(--text);font-weight:750;cursor:pointer;white-space:nowrap}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 8px 18px color-mix(in srgb,var(--primary) 22%,transparent)}.btn.light{position:relative;z-index:1;background:#fff;color:var(--brand-dark);border:0}.btn.small{padding:7px 10px;font-size:12px}.btn.full,.full{width:100%}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:18px}.stats article{padding:18px;position:relative}.stats article small{display:block;color:var(--muted);margin-bottom:8px}.stats article strong{display:block;font-size:24px;letter-spacing:-.035em}.stats article>span{display:block;color:var(--muted);font-size:11px;margin-top:6px}.stat-icon{position:absolute;right:16px;top:16px;width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);font-weight:900}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.65fr);gap:18px}.alert-list{display:grid;gap:5px}.alert-list>div{display:flex;justify-content:space-between;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.alert-list>div:last-child{border-bottom:0}.alert-list span{display:flex;flex-direction:column}.alert-list small{color:var(--muted);margin-top:3px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.form-grid.one{grid-template-columns:1fr}.form-grid .wide{grid-column:1/-1}label{display:grid;gap:6px;color:#3c4658;font-size:12px;font-weight:750}input,select,textarea{width:100%;border:1px solid #d5dae4;border-radius:10px;padding:10px 11px;background:#fff;color:var(--text)}textarea{min-height:78px;resize:vertical}input:focus,select:focus,textarea:focus{outline:3px solid color-mix(in srgb,var(--primary) 13%,transparent);border-color:var(--primary)}.check-row{display:flex;align-items:center;gap:8px;font-weight:650}.check-row input{width:auto}.file-label small{color:var(--muted);font-weight:500}.split-layout{display:grid;grid-template-columns:minmax(335px,.75fr) minmax(530px,1.25fr);gap:18px;align-items:start}.split-layout.narrow-form{grid-template-columns:minmax(300px,.55fr) minmax(520px,1.45fr)}.form-panel{position:sticky;top:18px}.settings-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(390px,.75fr);gap:18px;align-items:start}.settings-panel{position:sticky;top:18px}.inventory-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(350px,.65fr);gap:18px;align-items:start}.inventory-layout aside{position:sticky;top:18px}.inventory-toolbar{display:flex;justify-content:space-between;gap:12px;margin-bottom:15px}.filters{display:flex;gap:10px;flex:1}.filters select{max-width:220px}.search-input{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #d5dae4;border-radius:10px;padding-left:11px;flex:1;max-width:440px}.search-input input{border:0;padding-left:0}.search-input input:focus{outline:0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:590px}th,td{text-align:left;padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:middle}th{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:850;background:#fbfcfe}td{font-size:13px}td small{display:block;color:var(--muted);margin-top:3px}.empty-cell{text-align:center;color:var(--muted);padding:32px}.table-action{font-weight:750;font-size:12px}.product-name-cell{display:flex;align-items:center;gap:10px}.product-name-cell>span{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;color:#fff;font-weight:900}.stock-pill{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:11px}.stock-pill.ok{background:#ecfdf3;color:#087a55}.stock-pill.low{background:#fff2e8;color:#b54708}.status-tag{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:850;text-transform:capitalize}.status-tag.active{background:#ecfdf3;color:#087a55}.status-tag.inactive{background:#f1f3f6;color:#6b7280}.alert{padding:12px 14px;border-radius:11px;margin-bottom:16px}.alert.success{background:#ecfdf3;color:#087a55}.alert.danger{background:#fff0ee;color:var(--danger)}.inline-search input{min-width:210px}.empty-state{padding:35px 15px;text-align:center;color:var(--muted);border:1px dashed #d7dde7;border-radius:12px}.empty-state.compact{padding:16px}.category-list{display:grid}.category-row{display:grid;grid-template-columns:auto 1fr auto auto auto;align-items:center;gap:12px;padding:13px 4px;border-bottom:1px solid var(--line)}.category-row:last-child{border-bottom:0}.category-row div{display:flex;flex-direction:column}.category-row small{color:var(--muted);margin-top:3px}.category-swatch{width:34px;height:34px;border-radius:10px}.link-button{border:0;background:none;color:var(--primary);font-weight:750;cursor:pointer}.branch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.branch-card{padding:18px}.branch-card-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px}.branch-card-head>span{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);font-weight:900}.branch-card-head div{display:flex;flex-direction:column}.branch-card-head small,.branch-card p{color:var(--muted)}.branch-card p{min-height:36px;font-size:12px}.branch-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:14px 0}.branch-metrics div{padding:9px;border-radius:9px;background:#f8fafc}.branch-metrics small{display:block;color:var(--muted);font-size:9px}.branch-metrics strong{display:block;margin-top:4px;font-size:13px}.pos-layout{display:grid;grid-template-columns:minmax(0,1fr) 375px;gap:18px;align-items:start}.pos-catalog{min-height:calc(100vh - 125px)}.pos-toolbar{display:flex;gap:10px}.scan-box{height:54px;display:flex;align-items:center;gap:9px;padding:0 13px;border:1px solid #d4dae4;border-radius:13px;background:#fff;box-shadow:0 4px 18px rgba(15,23,42,.035);flex:1}.scan-box:focus-within{border-color:var(--primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 10%,transparent)}.scan-box>span{font-size:22px;color:var(--muted)}.scan-box input{border:0;padding:0;font-size:14px}.scan-box input:focus{outline:0}.scan-box kbd{font-size:9px;border:1px solid var(--line);border-radius:6px;padding:4px 6px;color:var(--muted);background:#f8fafc}.category-chips{display:flex;gap:8px;overflow:auto;padding:14px 0 13px}.category-chips button{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:999px;background:#fff;padding:8px 11px;color:#5d6677;font-weight:700;white-space:nowrap;cursor:pointer}.category-chips button span{width:8px;height:8px;border-radius:50%}.category-chips button.active{background:var(--brand-dark);color:#fff;border-color:var(--brand-dark)}.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:12px}.product-card{position:relative;min-height:145px;border:1px solid var(--line);border-radius:15px;background:#fff;padding:15px;text-align:left;cursor:pointer;box-shadow:0 6px 18px rgba(15,23,42,.035);transition:.16s}.product-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--primary) 40%,#d9dee8);box-shadow:0 13px 28px rgba(15,23,42,.08)}.product-card .product-accent{position:absolute;left:0;right:0;top:0;height:4px;border-radius:15px 15px 0 0}.product-card .product-avatar{width:39px;height:39px;border-radius:11px;display:grid;place-items:center;color:#fff;font-weight:900;margin-bottom:12px}.product-card strong{display:block;line-height:1.25}.product-card small{display:block;color:var(--muted);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-card-footer{display:flex;justify-content:space-between;align-items:end;margin-top:12px}.product-card-footer b{font-size:15px}.product-card-footer span{font-size:10px;color:var(--muted)}.search-results.floating{position:absolute;z-index:20;max-width:650px;width:calc(100% - 430px);margin-top:6px;display:grid;gap:5px}.result-item{display:flex;justify-content:space-between;gap:15px;border:1px solid var(--line);background:#fff;border-radius:11px;padding:11px 13px;box-shadow:0 9px 25px rgba(15,23,42,.08);cursor:pointer;text-align:left}.result-item span{display:flex;flex-direction:column}.result-item span:last-child{text-align:right}.result-item small{color:var(--muted);margin-top:3px}.no-result{background:#fff;padding:13px;border:1px solid var(--line);border-radius:11px;color:var(--muted)}.cart-panel{position:sticky;top:18px;background:#fff;border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow);height:calc(100vh - 54px);display:flex;flex-direction:column;overflow:hidden}.cart-title{padding:17px 17px 13px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-start}.cart-title h2{margin:0;font-size:17px}.cart-title p{margin:4px 0 0;color:var(--muted);font-size:11px}.branch-badge{padding:5px 7px;border-radius:7px;background:var(--primary-soft);color:var(--primary);font-size:9px;font-weight:900}.cart-panel form{display:flex;flex-direction:column;min-height:0;flex:1}.cart-items{padding:6px 13px;overflow:auto;flex:1;min-height:145px}.empty-cart{height:100%;min-height:210px;display:flex;align-items:center;justify-content:center;flex-direction:column;color:var(--muted)}.empty-cart div{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:#f3f6fa;font-size:22px;margin-bottom:10px}.empty-cart span{font-size:11px;margin-top:4px}.cart-item{display:grid;grid-template-columns:1fr auto;gap:10px;padding:11px 2px;border-bottom:1px solid var(--line)}.cart-item-main>strong{display:block;font-size:12px}.cart-item-main>small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.cart-item-controls{display:flex;align-items:center;gap:7px;margin-top:8px}.qty-control{display:flex;align-items:center;border:1px solid #d8dde6;border-radius:8px;overflow:hidden}.qty-control button{width:27px;height:27px;border:0;background:#f7f9fb;cursor:pointer}.qty-control input{width:38px;padding:4px;border:0;border-radius:0;text-align:center;font-size:11px}.cart-price{width:78px!important;padding:6px!important;font-size:11px}.serial-cart{margin-top:7px;padding:7px!important;font-size:10px}.cart-item-side{text-align:right}.cart-item-side b{font-size:12px}.remove-cart{display:block;margin:9px 0 0 auto;border:0;background:none;color:var(--danger);cursor:pointer;font-size:16px}.cart-fields{padding:12px 15px;border-top:1px solid var(--line);display:grid;gap:9px}.cart-fields label{font-size:10px}.cart-fields input,.cart-fields select,.cart-fields textarea{padding:8px 9px;font-size:11px}.cart-fields textarea{min-height:45px}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px}.cart-totals{padding:11px 16px;border-top:1px solid var(--line);display:grid;gap:7px}.cart-totals div{display:flex;justify-content:space-between}.cart-totals span{color:var(--muted);font-size:11px}.cart-grand{padding-top:7px;border-top:1px dashed #d7dce5;align-items:center}.cart-grand span{font-weight:800;color:var(--text);font-size:12px}.cart-grand strong{font-size:23px}.checkout-btn{margin:0 14px 14px;border:0;border-radius:12px;background:var(--primary);color:#fff;min-height:49px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;font-weight:800;cursor:pointer;box-shadow:0 9px 20px color-mix(in srgb,var(--primary) 25%,transparent)}.transfer-layout{display:grid;grid-template-columns:minmax(400px,.85fr) minmax(520px,1.15fr);gap:18px;align-items:start}.transfer-head{display:grid;grid-template-columns:1fr 1fr .7fr;gap:10px;margin-bottom:13px}.transfer-search{margin-bottom:7px}.search-results{display:grid;gap:5px}.transfer-items{display:grid;gap:8px;margin:13px 0}.transfer-line{display:grid;grid-template-columns:1fr 120px 35px;gap:9px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:11px}.transfer-line small{display:block;color:var(--muted);margin-top:3px}.transfer-line input{padding:8px}.transfer-line button{width:33px;height:33px;border:0;border-radius:9px;background:#fff0ee;color:var(--danger);cursor:pointer}.block-label{display:grid;margin-bottom:12px}.report-filter{margin-bottom:14px}.report-filter form{display:flex;gap:10px;align-items:end}.report-filter label{min-width:180px}.closing-header{display:flex;justify-content:space-between;align-items:center;padding:23px 25px;margin-bottom:14px}.closing-header h2{font-size:23px;margin:4px 0}.closing-header p{margin:0;color:var(--muted)}.closing-total{text-align:right}.closing-total small,.closing-total span{display:block;color:var(--muted)}.closing-total strong{display:block;font-size:31px;margin:2px 0;letter-spacing:-.04em}.closing-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.closing-summary article{padding:16px}.closing-summary small{display:block;color:var(--muted);margin-bottom:8px}.closing-summary strong{font-size:20px}.closing-grid{display:grid;grid-template-columns:minmax(0,1.35fr) 360px;gap:16px;align-items:start}.closing-grid aside{position:sticky;top:18px}.category-report{margin-bottom:19px;border:1px solid var(--line);border-radius:12px;overflow:hidden}.category-report-title{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;padding:12px 13px;background:#fafbfd}.category-report-title span{width:10px;height:10px;border-radius:50%}.category-report table{min-width:0}.subtotal-row td{font-weight:850;background:#fafbfd}.report-grand-total{display:flex;justify-content:space-between;align-items:center;padding:15px;border-radius:11px;background:var(--brand-dark);color:#fff}.report-grand-total strong{font-size:22px}.payment-summary{display:grid}.payment-summary>div{display:flex;justify-content:space-between;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.payment-summary>div:last-child{border-bottom:0}.payment-summary span{display:flex;flex-direction:column;text-transform:capitalize}.payment-summary small{color:var(--muted);margin-top:2px}.cash-formula{display:grid;grid-template-columns:1fr auto;gap:7px;padding:11px;border-radius:10px;background:#f7f9fc}.cash-formula span{color:var(--muted)}.saved-closing{display:flex;justify-content:space-between;padding:12px;border-radius:10px;background:#f7f9fc}.positive{color:var(--success)}.negative{color:var(--danger)}footer{text-align:center;color:var(--muted);font-size:11px;padding:15px}.login-body{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at top,color-mix(in srgb,var(--primary) 20%,white),#f5f7fb 58%)}.login-card{width:min(450px,100%);background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px;box-shadow:0 23px 70px rgba(15,23,42,.13)}.login-card .brand-mark{margin:auto}.login-card h1{text-align:center;margin:14px 0 5px}.login-card>p{text-align:center;color:var(--muted);margin:0 0 22px}.update-list{color:#526071;line-height:1.7}.security-note{font-size:11px;margin-top:15px!important}@media print{.sidebar,.topbar,.no-print,footer{display:none!important}.content{margin:0;padding:0}.panel,.closing-header,.closing-summary article{box-shadow:none}.closing-grid{grid-template-columns:1fr}.closing-grid aside{position:static}.closing-summary{grid-template-columns:repeat(4,1fr)}body{background:#fff}}@media(max-width:1250px){.pos-layout{grid-template-columns:minmax(0,1fr) 350px}.stats{grid-template-columns:repeat(2,1fr)}.split-layout,.settings-layout,.inventory-layout,.transfer-layout{grid-template-columns:1fr}.form-panel,.settings-panel,.inventory-layout aside{position:static}.branch-grid{grid-template-columns:repeat(2,1fr)}.closing-grid{grid-template-columns:1fr}.closing-grid aside{position:static}}@media(max-width:900px){.sidebar{transform:translateX(-100%);transition:.2s}.menu-open .sidebar{transform:none}.content{margin-left:0;padding:18px}.menu-btn{display:block}.pos-layout{grid-template-columns:1fr}.cart-panel{position:static;height:auto}.search-results.floating{width:calc(100% - 36px)}.dashboard-grid{grid-template-columns:1fr}.closing-summary{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.content{padding:13px}.topbar{align-items:flex-start}.topbar h1{font-size:21px}.topbar p{font-size:11px}.branch-switcher label{display:grid;gap:4px}.branch-switcher select{min-width:140px;max-width:150px}.stats{grid-template-columns:1fr 1fr;gap:9px}.stats article{padding:14px}.stats article strong{font-size:18px}.welcome-card{padding:21px;align-items:flex-start}.welcome-card h2{font-size:22px}.welcome-card .btn{display:none}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.product-card{min-height:135px;padding:12px}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.filters{display:grid;grid-template-columns:1fr}.filters select{max-width:none}.inventory-toolbar{align-items:stretch;flex-direction:column}.branch-grid{grid-template-columns:1fr}.category-row{grid-template-columns:auto 1fr auto}.category-row .table-action,.category-row form{grid-column:auto}.transfer-head{grid-template-columns:1fr}.report-filter form{display:grid;grid-template-columns:1fr 1fr}.report-filter label{min-width:0}.closing-header{align-items:flex-start}.closing-total strong{font-size:23px}.closing-summary{grid-template-columns:1fr 1fr}.report-grand-total{font-size:10px}.report-grand-total strong{font-size:17px}.settings-layout,.split-layout{display:block}.two-fields{grid-template-columns:1fr}.scan-box kbd{display:none}}
.row-actions{display:flex;align-items:center;gap:8px}

/* DSPN CRM v1.4 - interfaz visual, cancelaciones y devoluciones */
.sidebar{width:260px;padding:22px 14px;overflow-x:hidden}
.content{margin-left:260px}
.sidebar nav{display:flex;flex-direction:column;gap:0;width:100%}
.nav-group{display:flex!important;flex-direction:column!important;gap:5px!important;width:100%;margin:0 0 18px!important}
.nav-group>small{display:block!important;width:100%;padding:0 12px 5px!important;line-height:1.25;white-space:normal}
.sidebar nav a{display:flex!important;align-items:center!important;gap:11px!important;width:100%!important;min-height:45px;padding:10px 11px!important;white-space:nowrap;overflow:hidden}
.sidebar nav a i{display:grid!important;place-items:center!important;flex:0 0 28px;width:28px!important;height:28px!important}
.sidebar nav a span{display:block!important;min-width:0;overflow:hidden;text-overflow:ellipsis;line-height:1.25}
.topbar{gap:18px;flex-wrap:wrap}
.topbar-title{min-width:0;flex:1 1 360px}
.topbar-title>div{min-width:0}
.branch-switcher{margin-left:auto;flex:0 0 auto}
.branch-switcher label{display:flex;flex-direction:column;align-items:stretch;gap:6px}
.branch-switcher select{min-width:240px;max-width:280px}
.welcome-card{gap:20px;flex-wrap:wrap}
.stats article{min-width:0;overflow:hidden;padding-right:58px}
.stats article strong,.stats article>span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.panel-head{flex-wrap:wrap}
@media(max-width:900px){
 .content{margin-left:0}
 .sidebar{width:270px}
 .topbar{align-items:stretch}
 .branch-switcher{margin-left:0;width:100%}
 .branch-switcher select{min-width:100%;max-width:none}
}
@media(max-width:650px){
 .topbar-title{flex-basis:100%}
 .stats article{padding-right:48px}
}

/* DSPN CRM v1.4 — cancelaciones y devoluciones */
.row-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}.danger-link{color:var(--danger)!important}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff;box-shadow:0 8px 18px rgba(180,35,24,.18)}.status-tag.warning{background:#fff7e8;color:#9a5b00}.status-tag.returned{background:#fff0ee;color:#b42318}.status-tag.cancelled{background:#fee4e2;color:#912018}.return-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:16px}.return-page-head h2{font-size:27px;margin:8px 0 4px;letter-spacing:-.03em}.return-page-head p{margin:0;color:var(--muted)}.back-link{font-size:12px;font-weight:800}.return-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.return-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:17px}.return-metrics article{background:var(--panel);border:1px solid var(--line);border-radius:15px;padding:17px;box-shadow:var(--shadow)}.return-metrics small{display:block;color:var(--muted);margin-bottom:7px}.return-metrics strong{display:block;font-size:22px;letter-spacing:-.03em}.return-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(310px,.65fr);gap:18px;align-items:start}.return-layout aside{position:sticky;top:18px}.return-items-table input{min-width:78px;max-width:95px;text-align:center}.return-items-table tr.fully-returned{opacity:.62}.return-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;padding-top:16px}.return-form-grid .wide{grid-column:1/-1}.return-submit{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px;margin-top:16px;border-radius:13px;background:#f7f9fc;border:1px solid var(--line)}.return-submit>div{display:flex;flex-direction:column}.return-submit small{color:var(--muted)}.return-submit strong{font-size:24px;letter-spacing:-.03em;margin:2px 0}.return-submit span{font-size:10px;color:var(--muted)}.danger-panel{border-color:#f3c7c2;background:linear-gradient(180deg,#fff,#fff9f8)}.danger-panel .danger-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#fee4e2;color:var(--danger);font-weight:900;font-size:18px;margin-bottom:12px}.danger-panel h2{color:#8f1d15}.danger-panel>p,.return-note p{color:var(--muted);font-size:12px;line-height:1.55}.return-note p{margin:12px 0}.return-line td{color:#b42318;background:#fffafa}.closing-summary.five{grid-template-columns:repeat(5,minmax(0,1fr))}.cash-formula span:nth-last-of-type(1),.cash-formula b:last-child{padding-top:7px;border-top:1px dashed #d7dce5;font-weight:850;color:var(--text)}
@media(max-width:1250px){.closing-summary.five{grid-template-columns:repeat(3,1fr)}.return-layout{grid-template-columns:1fr}.return-layout aside{position:static}}
@media(max-width:900px){.return-metrics{grid-template-columns:repeat(2,1fr)}.return-page-head{align-items:flex-start}.return-head-actions{justify-content:flex-start}}
@media(max-width:650px){.return-page-head{display:block}.return-head-actions{margin-top:12px}.return-metrics{grid-template-columns:1fr 1fr;gap:9px}.return-metrics article{padding:13px}.return-metrics strong{font-size:18px}.return-form-grid{grid-template-columns:1fr}.return-form-grid .wide{grid-column:auto}.return-submit{align-items:stretch;flex-direction:column}.return-submit .btn{width:100%}.closing-summary.five{grid-template-columns:1fr 1fr}.row-actions{justify-content:flex-start}}


/* DSPN CRM v1.5: usuarios por sucursal y formularios de pago */
.branch-locked{margin-left:auto;min-width:245px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;display:flex;flex-direction:column;gap:2px;box-shadow:var(--shadow)}
.branch-locked small,.branch-locked span{color:var(--muted);font-size:10px}.branch-locked strong{font-size:13px;color:var(--text)}
.branch-user-tag{display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:11px;font-weight:800}
label>small{color:var(--muted);font-size:10px;font-weight:500;line-height:1.35}
@media(max-width:900px){.branch-locked{margin-left:0;width:100%;min-width:0}}

/* v1.5.1 */
.field-help{display:block;color:var(--muted);font-size:10px;font-weight:500;line-height:1.45;margin-top:1px}
input:invalid:not(:placeholder-shown){border-color:#d92d20}

/* DSPN CRM v1.6 · PWA, ventas offline y marca */
.login-brand-logo{width:92px;height:92px;display:block;margin:0 auto 16px;object-fit:contain;border-radius:22px;background:#fff;padding:8px;box-shadow:0 12px 32px rgba(15,23,42,.12)}
.login-card .brand-mark{margin:0 auto 16px}
.logo img{width:48px;height:48px;object-fit:contain;border-radius:12px;background:#fff;padding:4px}
.offline-status-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px;padding:10px 12px;border:1px solid #cfe8db;background:#f0fdf6;border-radius:12px;color:#166534;box-shadow:var(--shadow)}
.offline-status-bar.offline{border-color:#fed7aa;background:#fff7ed;color:#9a3412}
.offline-status-main{display:flex;align-items:center;gap:8px;min-width:170px}.connection-dot{width:10px;height:10px;border-radius:50%;background:#16a34a;box-shadow:0 0 0 4px rgba(22,163,74,.12)}
.offline-status-bar.offline .connection-dot{background:#f97316;box-shadow:0 0 0 4px rgba(249,115,22,.14)}
.offline-status-bar small{color:inherit;opacity:.78;flex:1;min-width:220px}.offline-status-actions{display:flex;gap:7px;align-items:center;margin-left:auto;flex-wrap:wrap}
.offline-mini-btn{border:1px solid rgba(15,23,42,.12);background:#fff;color:var(--text);border-radius:9px;padding:7px 10px;font-size:11px;font-weight:800;cursor:pointer}.offline-mini-btn:hover{border-color:var(--primary);color:var(--primary)}
.offline-mini-btn.has-pending{background:#fff7ed;border-color:#fdba74;color:#9a3412}.offline-mini-btn b{display:inline-grid;place-items:center;min-width:19px;height:19px;margin-left:5px;padding:0 5px;border-radius:999px;background:var(--primary);color:#fff;font-size:10px}
.offline-mini-btn.has-pending b{background:#ea580c}.checkout-btn:disabled,.offline-mini-btn:disabled{opacity:.58;cursor:wait;transform:none}
.offline-drawer{position:fixed;inset:0;z-index:100;background:rgba(15,23,42,.38);display:none;justify-content:flex-end}.offline-drawer.open{display:flex}.offline-drawer-panel{width:min(520px,100%);height:100%;background:#fff;box-shadow:-18px 0 45px rgba(15,23,42,.18);display:flex;flex-direction:column}.offline-drawer-head{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.offline-drawer-head h2{margin:0;font-size:20px}.offline-drawer-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.offline-drawer-close{border:0;background:#f1f5f9;width:36px;height:36px;border-radius:10px;font-size:21px;cursor:pointer}.offline-sales-list{padding:14px 18px;overflow:auto;flex:1}.offline-sale-row{display:flex;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid var(--line)}.offline-sale-row>div:first-child{min-width:0}.offline-sale-row strong{display:block}.offline-sale-row small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.offline-sale-row em{display:block;color:var(--danger);font-style:normal;font-size:10px;margin-top:5px}.offline-sale-row>div:last-child{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:5px;white-space:nowrap}.offline-sale-row a{font-size:11px;font-weight:800}.offline-sale-status{display:inline-flex;border-radius:999px;padding:4px 7px;font-size:9px;font-weight:900;text-transform:uppercase}.offline-sale-status.pending{background:#fff7ed;color:#9a3412}.offline-sale-status.conflict{background:#fff1f2;color:#be123c}.offline-sale-status.synced{background:#ecfdf3;color:#047857}.offline-drawer-footer{padding:14px 18px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:9px}.offline-drawer-open{overflow:hidden}
.pos-toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);z-index:200;max-width:min(560px,calc(100% - 30px));padding:12px 16px;border-radius:11px;background:#172033;color:#fff;box-shadow:0 18px 45px rgba(15,23,42,.24);opacity:0;pointer-events:none;transition:.18s;font-weight:750}.pos-toast.show{opacity:1;transform:translate(-50%,0)}.pos-toast.success{background:#087a55}.pos-toast.warning{background:#b54708}.pos-toast.danger{background:#b42318}
.offline-ticket-body{margin:0;background:#e9eef6;color:#111827;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.offline-ticket-shell{width:min(780px,100%);margin:0 auto;padding:22px}.offline-ticket-actions{display:flex;justify-content:space-between;gap:10px;margin-bottom:16px}.offline-ticket-paper{--ticket-width:80mm;width:var(--ticket-width);max-width:100%;min-height:300px;margin:0 auto;background:#fff;padding:8mm 6mm;box-shadow:0 16px 45px rgba(15,23,42,.15);font-family:Arial,sans-serif;font-size:11px;color:#111}.offline-ticket-header{text-align:center}.offline-ticket-logo{display:block;max-width:34mm;max-height:22mm;object-fit:contain;margin:0 auto 5px}.offline-ticket-default-logo{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:#1267e8;color:#fff;font-weight:900;font-size:21px;margin:0 auto 6px}.offline-ticket-header h1{margin:2px 0;font-size:18px}.offline-ticket-header p{margin:2px 0;font-size:10px}.offline-ticket-message,.offline-ticket-footer{border-top:1px dashed #555;border-bottom:1px dashed #555;padding:6px 0;margin:7px 0;text-align:center;white-space:pre-line}.offline-ticket-sync{text-align:center;padding:5px;border-radius:4px;margin:7px 0;font-size:9px;font-weight:900;letter-spacing:.08em}.offline-ticket-sync.pending{background:#fff7ed;color:#9a3412}.offline-ticket-sync.conflict{background:#fff1f2;color:#be123c}.offline-ticket-sync.synced{background:#ecfdf3;color:#047857}.offline-ticket-meta{margin:8px 0}.offline-ticket-meta div{display:flex;justify-content:space-between;gap:8px;margin:2px 0}.offline-ticket-meta dt{font-weight:700}.offline-ticket-meta dd{margin:0;text-align:right}.offline-ticket-items{width:100%;min-width:0;border-collapse:collapse;border-top:1px dashed #555;border-bottom:1px dashed #555}.offline-ticket-items td{padding:5px 0;border:0;vertical-align:top;font-size:10px}.offline-ticket-items td:last-child{text-align:right;white-space:nowrap}.offline-ticket-items small{display:block;color:#4b5563;margin-top:2px}.offline-ticket-totals{margin-top:7px}.offline-ticket-totals div{display:flex;justify-content:space-between;margin:3px 0}.offline-ticket-totals .grand{border-top:1px dashed #555;padding-top:5px;margin-top:5px;font-size:14px}.offline-ticket-notes{border-top:1px dashed #555;margin-top:7px;padding-top:6px}.offline-ticket-notes p{margin:3px 0;white-space:pre-line}.offline-ticket-warning,.offline-ticket-error-note{margin:8px 0 0;padding:6px;text-align:center;font-size:9px;background:#fff7ed;color:#9a3412}.offline-ticket-error-note{background:#fff1f2;color:#be123c}.offline-ticket-loading,.offline-ticket-error{text-align:center;padding:45px 15px;color:#6b7280}.offline-fallback-card p{line-height:1.6}
@media print{.offline-ticket-body{background:#fff}.offline-ticket-shell{width:auto;padding:0}.offline-ticket-paper{width:var(--ticket-width);box-shadow:none;margin:0;padding:3mm}.no-print{display:none!important}}
@media(max-width:700px){.offline-status-bar{align-items:flex-start}.offline-status-actions{margin-left:0;width:100%}.offline-mini-btn{flex:1}.offline-status-bar small{min-width:100%}.offline-ticket-shell{padding:10px}.offline-ticket-paper{padding:6mm 4mm}.offline-drawer-footer{flex-direction:column}.offline-sale-row{align-items:flex-start}}

/* DSPN CRM v1.7 - Solicitudes de traspaso */
.request-intro{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 26px;margin-bottom:18px;border-radius:18px;background:linear-gradient(135deg,var(--brand-dark),color-mix(in srgb,var(--brand-dark) 68%,var(--primary)));color:#fff;box-shadow:var(--shadow)}.request-intro h2{margin:5px 0 6px;font-size:25px;letter-spacing:-.03em}.request-intro p{margin:0;color:#cbd5e1;max-width:720px}.request-flow{display:flex;align-items:center;gap:8px;white-space:nowrap}.request-flow span{padding:8px 10px;border-radius:999px;background:rgba(255,255,255,.09);font-size:11px;font-weight:800}.request-flow b{color:#91a4c0}.request-builder-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,.55fr);gap:18px;align-items:start}.external-stock-panel{min-height:520px}.source-branch-form label{min-width:230px}.external-stock-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:10px;margin-bottom:15px}.external-stock-toolbar .search-input{max-width:none}.external-product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.external-product-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:center;position:relative;width:100%;padding:13px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--text);text-align:left;cursor:pointer;transition:.18s}.external-product-card:hover{border-color:color-mix(in srgb,var(--primary) 45%,var(--line));box-shadow:0 9px 22px rgba(15,23,42,.07);transform:translateY(-1px)}.external-product-card[hidden]{display:none}.external-product-icon{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;color:#fff;font-weight:900}.external-product-copy{min-width:0}.external-product-copy strong,.external-product-copy small,.external-product-copy em{display:block}.external-product-copy strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.external-product-copy small{margin-top:3px;color:var(--muted);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.external-product-copy em{margin-top:5px;color:var(--primary);font-size:9px;font-style:normal;font-weight:800;text-transform:uppercase}.external-product-stock{text-align:right}.external-product-stock b,.external-product-stock small{display:block}.external-product-stock b{font-size:19px}.external-product-stock small{color:var(--muted);font-size:9px}.external-add{grid-column:2/4;color:var(--primary);font-size:10px;font-weight:850}.wide-empty{grid-column:1/-1}.request-cart-panel{position:sticky;top:18px}.request-cart-panel form{display:grid;gap:12px}.locked-branch-note{padding:10px 11px;border-radius:10px;background:var(--primary-soft);color:var(--primary);font-size:11px}.request-cart-items{display:grid;gap:8px;max-height:390px;overflow:auto}.request-cart-line{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:9px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:11px;background:#fbfcfe}.request-cart-line>div:first-child{min-width:0}.request-cart-line strong,.request-cart-line small,.request-cart-line span{display:block}.request-cart-line strong{font-size:12px}.request-cart-line small{color:var(--muted);font-size:9px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.request-cart-line span{font-size:9px;color:var(--primary);margin-top:4px}.request-cart-control{display:flex;border:1px solid #d8dde6;border-radius:8px;overflow:hidden}.request-cart-control button{width:27px;height:29px;border:0;background:#f3f6fa;cursor:pointer}.request-cart-control input{width:42px;padding:4px;border:0;border-radius:0;text-align:center;font-size:11px}.request-cart-remove{width:28px;height:28px;border:0;border-radius:8px;background:#fff0ee;color:var(--danger);font-size:17px;cursor:pointer}.request-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start;margin-top:18px}.request-list{display:grid;gap:12px}.request-card{padding:15px;border:1px solid var(--line);border-radius:14px;background:#fff}.request-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.request-card-head>div{display:flex;flex-direction:column}.request-card-head strong{font-size:14px}.request-card-head small{color:var(--muted);margin-top:4px}.request-meta{display:flex;justify-content:space-between;gap:10px;padding:9px 0;color:var(--muted);font-size:10px}.request-item-list{display:grid;border-top:1px solid var(--line)}.request-item-list>div{display:grid;grid-template-columns:minmax(0,1fr) repeat(3,72px);gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.request-item-list.compact-list>div{grid-template-columns:minmax(0,1fr) 72px 72px}.request-item-list>div>span:first-child{min-width:0}.request-item-list strong,.request-item-list small{display:block}.request-item-list strong{font-size:11px}.request-item-list small{font-size:9px;color:var(--muted);margin-top:2px}.request-qty{text-align:center;padding:5px;border-radius:8px;background:#f7f9fc}.request-qty b{display:block;margin-top:2px}.request-qty.approved{background:#ecfdf3;color:#087a55}.request-qty.stock{background:var(--primary-soft);color:var(--primary)}.request-note,.request-response{margin:10px 0 0;padding:9px 10px;border-radius:9px;background:#f7f9fc;font-size:10px;color:#526071}.request-response{background:#eef6ff;color:#235690}.request-review-form{display:grid;gap:10px;margin-top:12px;padding-top:12px;border-top:1px dashed #d8dde6}.approval-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.approval-grid label{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px;padding:8px;border:1px solid var(--line);border-radius:9px;font-size:10px}.approval-grid label span{color:var(--muted);font-weight:500}.approval-grid input{grid-column:1/-1;padding:7px}.request-actions{display:flex;gap:8px}.btn.danger-outline{color:var(--danger);border-color:#f3b6b0;background:#fff}.complete-request-form{margin-top:12px}.completed-request-note{margin-top:11px;padding:10px;border-radius:9px;background:#ecfdf3;color:#087a55;font-size:10px;font-weight:750}.count-badge{min-width:28px;height:28px;padding:0 8px;display:grid;place-items:center;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:11px;font-weight:900}.status-tag.warning{background:#fff7e8;color:#a15c00}.status-tag.approved{background:#eef6ff;color:#175cd3}.status-tag.cancelled{background:#fff0ee;color:#b42318}.admin-transfer-panel{margin-top:18px}.admin-transfer-panel summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;list-style:none}.admin-transfer-panel summary::-webkit-details-marker{display:none}.admin-transfer-panel summary span{display:flex;flex-direction:column}.admin-transfer-panel summary small{color:var(--muted);margin-top:4px;font-weight:500}.admin-transfer-panel[open] summary{padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--line)}
@media(max-width:1250px){.request-builder-layout{grid-template-columns:1fr}.request-cart-panel{position:static}.request-columns{grid-template-columns:1fr}.external-product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.request-intro{align-items:flex-start;flex-direction:column}.request-flow{flex-wrap:wrap}.external-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.external-stock-toolbar{grid-template-columns:1fr}.external-product-grid{grid-template-columns:1fr}.source-branch-form,.source-branch-form label{width:100%;min-width:0}.request-item-list>div,.request-item-list.compact-list>div{grid-template-columns:minmax(0,1fr) 58px}.request-item-list .request-qty.stock{display:none}.approval-grid{grid-template-columns:1fr}.request-actions{display:grid}.request-flow b{display:none}.request-flow span{font-size:9px}.request-intro{padding:20px}.request-cart-line{grid-template-columns:minmax(0,1fr) auto}.request-cart-remove{grid-column:2}.external-product-card{grid-template-columns:auto minmax(0,1fr) auto}}


/* DSPN CRM v1.8: efectivo, cambio y centro de reportes */
.cash-payment-box{display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,.65fr);gap:9px;align-items:end;padding:11px;border:1px solid color-mix(in srgb,var(--primary) 20%,var(--line));border-radius:12px;background:var(--primary-soft)}.cash-payment-box.hidden{display:none}.cash-input-row{display:flex;gap:7px}.cash-input-row input{background:#fff}.change-preview{min-height:57px;padding:9px 11px;border-radius:10px;background:#fff;display:flex;flex-direction:column;justify-content:center}.change-preview span{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:800}.change-preview strong{font-size:19px;margin-top:3px;color:var(--success)}.change-preview strong.insufficient{color:var(--danger)}
.report-hero{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:25px 28px;margin-bottom:15px;border-radius:17px;background:linear-gradient(135deg,var(--brand-dark),color-mix(in srgb,var(--brand-dark) 62%,var(--primary)));color:#fff;box-shadow:var(--shadow)}.report-hero h2{margin:4px 0;font-size:26px}.report-hero p{margin:0;color:#ccd6e5}.report-filter-panel{padding:15px 18px}.report-range-form{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr)) auto;gap:11px;align-items:end}.report-tabs{display:flex;gap:7px;overflow:auto;padding:2px 1px 12px;margin-bottom:4px}.report-tabs a{display:inline-flex;white-space:nowrap;padding:9px 13px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--muted);font-weight:750}.report-tabs a.active{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 7px 16px color-mix(in srgb,var(--primary) 20%,transparent)}.report-kpis,.inventory-report-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:15px}.report-kpis article,.inventory-report-summary article{padding:17px;background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow)}.report-kpis small,.inventory-report-summary small{display:block;color:var(--muted);margin-bottom:7px}.report-kpis strong,.inventory-report-summary strong{display:block;font-size:22px;letter-spacing:-.03em}.report-kpis span{display:block;color:var(--muted);font-size:10px;margin-top:5px}.report-two-columns{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:16px;align-items:start}.report-category-name{display:inline-flex;align-items:center;gap:8px}.report-category-name i{width:10px;height:10px;border-radius:50%}.report-note{margin-top:14px;padding:11px;border-radius:10px;background:#f7f9fc;color:var(--muted);font-size:11px;line-height:1.45}
@media(max-width:1100px){.report-range-form{grid-template-columns:1fr 1fr}.report-range-form .btn{min-height:42px}.report-kpis,.inventory-report-summary{grid-template-columns:repeat(2,1fr)}.report-two-columns{grid-template-columns:1fr}}
@media(max-width:650px){.cash-payment-box{grid-template-columns:1fr}.report-hero{align-items:flex-start}.report-range-form{grid-template-columns:1fr}.report-kpis,.inventory-report-summary{grid-template-columns:1fr 1fr}.report-kpis strong,.inventory-report-summary strong{font-size:18px}}
@media print{.report-hero{background:#fff!important;color:#111!important;border:1px solid #ddd;box-shadow:none}.report-hero p{color:#555}.report-tabs,.report-filter-panel{display:none!important}.report-kpis article,.inventory-report-summary article{box-shadow:none}.report-two-columns{grid-template-columns:1fr}.content{padding:0}.panel{break-inside:avoid}}

/* DSPN CRM v1.9 · Fidelidad */
.loyalty-sale-box{border:1px solid color-mix(in srgb,var(--primary) 24%,var(--line));background:linear-gradient(145deg,color-mix(in srgb,var(--primary) 7%,white),#fff);border-radius:12px;padding:11px;display:grid;gap:10px}.loyalty-sale-box.offline-disabled{filter:saturate(.75)}.loyalty-sale-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.loyalty-sale-head span{display:flex;flex-direction:column;gap:3px}.loyalty-sale-head b{font-size:11px;color:var(--primary)}.loyalty-sale-head small{font-size:9px;color:var(--muted);font-weight:500;line-height:1.35}.loyalty-sale-head>strong{font-size:12px;white-space:nowrap}.loyalty-redeem-row{display:grid;grid-template-columns:1fr 1fr;gap:9px;align-items:end}.loyalty-value-preview{padding:8px 9px;border-radius:9px;background:#fff;border:1px solid var(--line);display:flex;flex-direction:column;gap:3px}.loyalty-value-preview span,.loyalty-earned-preview span{font-size:9px;color:var(--muted)}.loyalty-value-preview strong{font-size:14px}.loyalty-earned-preview{display:grid;grid-template-columns:1fr auto;gap:3px 8px;padding-top:8px;border-top:1px dashed color-mix(in srgb,var(--primary) 25%,var(--line))}.loyalty-earned-preview b{font-size:11px;color:var(--success)}.loyalty-earned-preview small{grid-column:1/-1;color:var(--muted);font-size:8px;line-height:1.35}.loyalty-sale-box input:disabled{background:#f3f5f8;color:#9299a6}.loyalty-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:25px 27px;margin-bottom:15px;border-radius:18px;background:linear-gradient(135deg,var(--brand-dark),color-mix(in srgb,var(--brand-dark) 64%,var(--primary)));color:#fff;box-shadow:var(--shadow)}.loyalty-hero h2{font-size:26px;margin:5px 0}.loyalty-hero p{margin:0;color:#d8e0ed;max-width:650px}.loyalty-rule{display:grid;grid-template-columns:auto auto;align-items:center;gap:4px 10px;min-width:240px;padding:16px;border:1px solid rgba(255,255,255,.15);border-radius:14px;background:rgba(255,255,255,.07)}.loyalty-rule strong{font-size:18px}.loyalty-rule span{font-size:10px;color:#cbd5e1}.loyalty-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:16px}.loyalty-stats article{background:#fff;border:1px solid var(--line);border-radius:15px;padding:17px;box-shadow:var(--shadow)}.loyalty-stats small{display:block;color:var(--muted);margin-bottom:7px}.loyalty-stats strong{display:block;font-size:23px;letter-spacing:-.03em}.loyalty-stats span{display:block;color:var(--muted);font-size:10px;margin-top:5px}.loyalty-layout{display:grid;grid-template-columns:minmax(0,1.45fr) 350px;gap:16px;align-items:start}.loyalty-layout aside{position:sticky;top:18px}.loyalty-client-card{display:flex;gap:14px;align-items:flex-start;background:linear-gradient(145deg,#fff,color-mix(in srgb,var(--primary) 6%,white))}.loyalty-client-avatar{width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center;border-radius:14px;background:var(--primary);color:#fff;font-size:23px;box-shadow:0 10px 22px color-mix(in srgb,var(--primary) 25%,transparent)}.loyalty-client-card h2{margin:4px 0 8px}.loyalty-big-balance{display:block;font-size:27px;color:var(--primary);letter-spacing:-.04em}.loyalty-client-card p{margin:4px 0 12px;color:var(--muted)}.loyalty-expiry-note{display:grid;grid-template-columns:1fr auto;gap:3px 9px;padding:10px;border-radius:10px;background:#fff;border:1px solid var(--line)}.loyalty-expiry-note span{font-size:9px;color:var(--muted)}.loyalty-expiry-note b{font-size:11px}.loyalty-expiry-note small{grid-column:1/-1;color:var(--warning)}.loyalty-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,.8fr);gap:16px}.loyalty-movement-list{display:grid}.loyalty-movement-list article{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.loyalty-movement-list article:last-child{border-bottom:0}.loyalty-movement-icon{width:31px;height:31px;display:grid;place-items:center;border-radius:9px;font-weight:900}.loyalty-movement-icon.positive{background:#ecfdf3}.loyalty-movement-icon.negative{background:#fff0ee}.loyalty-movement-list article>div{display:flex;flex-direction:column;min-width:0}.loyalty-movement-list small,.loyalty-movement-list em{font-size:9px;color:var(--muted);font-style:normal;margin-top:2px}.loyalty-movement-list article>b{text-align:right;font-size:11px}.loyalty-movement-list article>b small{display:block}.offline-ticket-loyalty{border-top:1px dashed #111827;border-bottom:1px dashed #111827;padding:8px 0;margin:9px 0;font-size:10px}.offline-ticket-loyalty>strong{display:block;margin-bottom:5px}.offline-ticket-loyalty div{display:flex;justify-content:space-between;padding:2px 0}.offline-ticket-loyalty small{display:block;color:#5b6472;margin-top:5px;line-height:1.35}
@media(max-width:1250px){.loyalty-layout,.loyalty-detail-grid{grid-template-columns:1fr}.loyalty-layout aside{position:static}.loyalty-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.loyalty-hero{align-items:flex-start;flex-direction:column;padding:20px}.loyalty-rule{width:100%;min-width:0}.loyalty-stats{grid-template-columns:1fr 1fr;gap:8px}.loyalty-stats article{padding:13px}.loyalty-stats strong{font-size:18px}.loyalty-redeem-row{grid-template-columns:1fr}.loyalty-movement-list article{grid-template-columns:auto 1fr}.loyalty-movement-list article>b{grid-column:2;text-align:left}}

.whatsapp-btn{background:#16a34a!important;border-color:#16a34a!important;color:#fff!important}.whatsapp-btn:hover{background:#15803d!important}.whatsapp-btn.attention{animation:whatsappButtonPulse 1.1s ease-in-out 3;box-shadow:0 0 0 5px rgba(22,163,74,.18)!important}@keyframes whatsappButtonPulse{50%{transform:scale(1.045)}}


/* DSPN CRM v1.9.2 · Total visible en punto de venta */
.sale-total-banner{margin:0 13px 10px;padding:13px 14px;border:1px solid color-mix(in srgb,var(--primary) 28%,var(--line));border-radius:13px;background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 11%,white),#fff);display:flex;align-items:center;justify-content:space-between;gap:14px;box-shadow:0 8px 20px color-mix(in srgb,var(--primary) 8%,transparent)}
.sale-total-banner>div{display:flex;flex-direction:column;gap:3px;min-width:0}.sale-total-banner span{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:850}.sale-total-banner small{font-size:9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sale-total-banner>strong{font-size:27px;line-height:1;color:var(--primary);letter-spacing:-.04em;white-space:nowrap}
@media(max-width:650px){.sale-total-banner{margin:0 13px 11px;padding:14px}.sale-total-banner>strong{font-size:28px}}
