:root{--navy:#0f172a;--navy2:#1e293b;--blue:#2563eb;--blue2:#1d4ed8;--light:#dbeafe;--bg:#f8fafc;--surface:#fff;--border:#e2e8f0;--text:#0f172a;--muted:#64748b;--green:#16a34a;--orange:#f97316;--red:#dc2626;--violet:#7c3aed;--shadow:0 8px 24px rgba(15,23,42,.08)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,"Segoe UI",sans-serif}.app{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:var(--navy);color:#cbd5e1;display:flex;flex-direction:column;z-index:10}.brand{height:78px;padding:16px 20px;border-bottom:1px solid #263247;display:flex;gap:12px;align-items:center}.brand-mark{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,var(--blue),#60a5fa);display:grid;place-items:center;color:#fff;font-weight:800;font-size:18px}.brand strong{display:block;color:#fff}.brand small{color:#94a3b8}.nav{overflow:auto;padding:10px 8px;flex:1}.nav-section{margin:16px 10px 7px;color:#7da6e8;font-size:10px;font-weight:800;letter-spacing:1.2px}.nav a{display:flex;padding:10px 12px;margin:2px 0;border-radius:8px;text-decoration:none;color:#cbd5e1;font-size:13px}.nav a:hover{background:var(--navy2);color:#fff}.nav a.active{background:var(--blue);color:#fff}.sidebar-foot{padding:14px 18px;border-top:1px solid #263247;font-size:12px}.main{margin-left:248px;min-height:100vh}.topbar{height:66px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 28px;position:sticky;top:0;z-index:5}.topbar-title{font-weight:750;flex:1}.status{padding:7px 12px;border-radius:999px;background:#dcfce7;color:#166534;font-size:12px;font-weight:700}.avatar{margin-left:12px;width:34px;height:34px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-weight:800}.page{padding:22px 28px 32px}.breadcrumb{font-size:12px;color:var(--muted);margin-bottom:12px}.breadcrumb b{color:var(--blue)}.page-head{background:#fff;border:1px solid var(--border);border-top:3px solid var(--blue);padding:20px 22px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.page-head h1{font-size:23px;margin:0 0 5px}.page-head p{margin:0;color:var(--muted);font-size:13px}.actions{display:flex;gap:8px;flex-wrap:wrap}.btn{border:0;border-radius:9px;padding:10px 15px;font-weight:700;cursor:pointer;font-size:13px}.btn-primary{background:var(--blue);color:#fff}.btn-secondary{background:#fff;color:var(--text);border:1px solid var(--border)}.btn-success{background:var(--green);color:#fff}.grid{display:grid;gap:16px}.kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px}.card{background:#fff;border:1px solid var(--border);border-radius:13px;box-shadow:0 1px 2px rgba(15,23,42,.03)}.card-pad{padding:18px}.kpi{border-left:4px solid var(--blue)}.kpi .label{font-size:11px;color:var(--muted);font-weight:800;letter-spacing:.7px}.kpi .value{font-size:27px;font-weight:800;margin:9px 0 3px}.kpi small{color:var(--muted)}.toolbar{display:flex;gap:10px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--border);flex-wrap:wrap}.input,.select{height:40px;padding:0 12px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text)}.input{min-width:260px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{background:#f8fafc;color:var(--muted);font-size:11px;text-align:left;text-transform:uppercase;letter-spacing:.6px;padding:12px 14px;border-bottom:1px solid var(--border)}.table td{padding:14px;border-bottom:1px solid #eef2f7}.empty{text-align:center;color:var(--muted);padding:44px 20px}.empty strong{display:block;color:var(--text);margin-bottom:6px}.two{grid-template-columns:1.4fr 1fr}.three{grid-template-columns:minmax(0,1.5fr) minmax(300px,.8fr) minmax(270px,.65fr)}.panel-title{padding:15px 17px;border-bottom:1px solid var(--border);font-weight:800}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:18px}.field label{display:block;font-size:12px;font-weight:700;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;border:1px solid var(--border);border-radius:8px;padding:10px;background:#fff}.placeholder-chart{height:230px;display:flex;align-items:end;gap:10px;padding:24px}.bar{flex:1;background:linear-gradient(180deg,#60a5fa,var(--blue));border-radius:7px 7px 0 0}.catalog{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:10px;padding:14px}.product{border:1px solid var(--border);border-radius:10px;padding:13px;background:#fff}.product .price{color:var(--blue);font-weight:800;margin-top:9px}.total{font-size:30px;font-weight:900;color:var(--green);padding:18px}.pay-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:14px}.pay{padding:12px 8px;border:1px solid var(--border);background:#fff;border-radius:9px;font-weight:700}.note{padding:12px 14px;border-radius:9px;background:var(--light);color:#1e40af;font-size:13px}.section-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.section-link{padding:18px;text-decoration:none;color:var(--text)}.section-link:hover{border-color:var(--blue);transform:translateY(-1px)}
@media(max-width:1100px){.kpis{grid-template-columns:repeat(2,1fr)}.three,.two{grid-template-columns:1fr}.catalog{grid-template-columns:repeat(4,1fr)}}@media(max-width:760px){.sidebar{width:72px}.brand div:last-child,.nav-section,.nav a span,.sidebar-foot{display:none}.nav a{justify-content:center}.main{margin-left:72px}.page{padding:14px}.page-head{align-items:flex-start;flex-direction:column}.kpis,.form-grid,.section-links{grid-template-columns:1fr}.catalog{grid-template-columns:repeat(2,1fr)}}

/* Punto de venta actualizado */
.pos-page{padding-top:16px}.pos-caja{display:flex;align-items:center;gap:7px;background:#dcfce7;color:#166534;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800}.pos-caja span{width:7px;height:7px;background:var(--green);border-radius:50%}.pos-terminal{font-size:12px;color:var(--muted);margin-left:12px}.pos-commandbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.pos-commandbar h1{font-size:23px;margin:0 0 3px}.pos-commandbar p{margin:0;color:var(--muted);font-size:13px}.pos-shortcuts{display:flex;gap:6px;flex-wrap:wrap}.pos-shortcuts span{font-size:10px;font-weight:800;color:#475569;background:#fff;border:1px solid var(--border);padding:6px 8px;border-radius:6px}.pos-workspace{display:grid;grid-template-columns:minmax(420px,1.35fr) minmax(310px,.78fr) minmax(315px,.78fr);gap:12px;align-items:start}.pos-catalog-card,.pos-ticket,.pos-payment{overflow:hidden}.pos-search-row{display:flex;gap:9px;padding:14px;border-bottom:1px solid var(--border)}.pos-search{display:flex;align-items:center;gap:9px;flex:1;border:1px solid var(--border);border-radius:9px;padding:0 12px;background:#fff}.pos-search span{font-size:22px;color:var(--muted)}.pos-search input{border:0;outline:0;width:100%;height:42px;font:inherit}.pos-category-row{display:flex;gap:7px;padding:11px 14px;overflow:auto;border-bottom:1px solid var(--border)}.pos-chip{white-space:nowrap;border:1px solid var(--border);background:#fff;border-radius:999px;padding:7px 11px;font-size:11px;font-weight:700;color:#475569}.pos-chip.active{background:var(--blue);border-color:var(--blue);color:#fff}.pos-products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px;max-height:610px;overflow:auto}.pos-product{border:1px solid var(--border);border-radius:11px;padding:10px;display:grid;grid-template-columns:50px 1fr;gap:10px;position:relative}.pos-product-img{width:50px;height:50px;background:var(--light);color:var(--blue);border-radius:9px;display:grid;place-items:center;font-size:18px;font-weight:900}.pos-product-body h3{font-size:12px;margin:5px 0 2px}.pos-product-body small{font-size:10px;color:var(--muted)}.pos-product-body strong{display:block;color:var(--blue);margin-top:7px}.pos-product>button{grid-column:1/-1;border:0;background:#eff6ff;color:var(--blue);font-weight:800;border-radius:7px;padding:7px;cursor:pointer}.pos-stock{font-size:9px;font-weight:800;padding:3px 6px;border-radius:999px}.pos-stock.ok{background:#dcfce7;color:#166534}.pos-stock.low{background:#ffedd5;color:#9a3412}.pos-panel-head{display:flex;align-items:center;justify-content:space-between;padding:14px 15px;border-bottom:1px solid var(--border)}.pos-panel-head small{color:var(--blue);font-size:9px;font-weight:900;letter-spacing:1px}.pos-panel-head h2{font-size:16px;margin:2px 0 0}.pos-document,.pos-secure{font-size:10px;color:var(--muted);background:#f1f5f9;padding:6px 8px;border-radius:6px}.pos-client-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 15px;background:#f8fafc;border-bottom:1px solid var(--border)}.pos-client-row small,.pos-client-row strong{display:block}.pos-client-row small{font-size:10px;color:var(--muted);margin-bottom:3px}.pos-ticket-columns{display:grid;grid-template-columns:1fr 50px 70px;padding:9px 14px;background:#f8fafc;color:var(--muted);font-size:9px;font-weight:900;text-transform:uppercase}.pos-cart-empty{padding:48px 18px;text-align:center;color:var(--muted);min-height:250px}.pos-cart-empty strong{display:block;color:var(--text);margin:8px 0 4px}.pos-cart-empty p{font-size:11px;line-height:1.5;margin:0}.pos-cart-icon{width:44px;height:44px;background:#f1f5f9;border-radius:50%;display:grid;place-items:center;margin:auto;font-size:21px}.pos-summary{padding:13px 15px;border-top:1px solid var(--border);background:#f8fafc}.pos-summary>div{display:flex;justify-content:space-between;padding:4px 0;font-size:12px}.pos-summary .grand{border-top:1px dashed #cbd5e1;margin-top:8px;padding-top:12px;font-size:17px}.pos-summary .grand strong{font-size:22px;color:var(--green)}.pos-ticket-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;padding:10px}.pos-danger-soft{background:#fef2f2;color:var(--red);border:1px solid #fecaca}.pos-help{font-size:11px;color:var(--muted);margin:12px 14px 8px}.payment-methods{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:0 12px 12px}.payment-method{position:relative;display:flex;align-items:center;gap:8px;text-align:left;background:#fff;border:1px solid var(--border);border-radius:9px;padding:9px 8px;cursor:pointer;min-height:58px}.payment-method:hover{border-color:#93c5fd;background:#f8fbff}.payment-method.active{border:2px solid var(--blue);background:#eff6ff;padding:8px 7px}.payment-method>span:nth-child(2){min-width:0}.payment-method strong,.payment-method small{display:block}.payment-method strong{font-size:11px}.payment-method small{font-size:9px;color:var(--muted);margin-top:2px}.payment-method i{display:none;position:absolute;right:5px;top:4px;width:15px;height:15px;background:var(--blue);color:#fff;border-radius:50%;font-size:9px;font-style:normal;text-align:center;line-height:15px}.payment-method.active i{display:block}.payment-logo{width:30px;height:30px;border-radius:8px;display:grid!important;place-items:center;color:#fff;font-size:10px!important;font-weight:900;flex:0 0 30px}.payment-logo.cash{background:var(--green)}.payment-logo.nequi{background:#5b1778}.payment-logo.davi{background:#ef4444}.payment-logo.cardpay{background:#2563eb}.payment-logo.credit{background:#7c3aed}.payment-logo.davivienda{background:#dc2626}.payment-logo.transfer{background:#0891b2}.payment-logo.mixed{background:#f97316}.payment-detail{border-top:1px solid var(--border);padding:12px 14px}.payment-detail>label,.payment-reference label{display:block;font-size:10px;font-weight:800;color:#475569;margin-bottom:5px}.money-input{display:flex;align-items:center;border:1px solid var(--border);border-radius:9px;padding:0 11px}.money-input span{font-size:18px;font-weight:900;color:var(--green)}.money-input input{width:100%;border:0;outline:0;height:42px;font-size:18px;font-weight:800;text-align:right}.quick-money{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:7px}.quick-money button{border:1px solid var(--border);background:#fff;border-radius:6px;padding:6px 2px;font-size:9px;font-weight:700}.payment-reference{display:none;margin-top:10px}.payment-reference.visible{display:block}.payment-reference input{width:100%;height:38px;border:1px solid var(--border);border-radius:8px;padding:0 9px}.change-box{display:flex;justify-content:space-between;margin-top:11px;padding:10px;background:#ecfdf5;color:#166534;border-radius:8px;font-size:12px}.change-box strong{font-size:15px}.pos-charge{display:flex;justify-content:space-between;align-items:center;width:calc(100% - 28px);margin:0 14px;border:0;border-radius:10px;background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;padding:14px;font-size:12px;font-weight:900;cursor:pointer;box-shadow:0 8px 18px rgba(22,163,74,.2)}.pos-charge span{background:rgba(255,255,255,.2);padding:3px 6px;border-radius:5px}.pos-cancel{width:100%;border:0;background:transparent;color:var(--red);font-weight:700;padding:12px;cursor:pointer}
@media(max-width:1450px){.pos-workspace{grid-template-columns:minmax(390px,1.2fr) minmax(285px,.75fr) minmax(300px,.75fr)}.pos-products{grid-template-columns:1fr}}@media(max-width:1120px){.pos-workspace{grid-template-columns:1fr 1fr}.pos-catalog-column{grid-column:1/-1}.pos-products{grid-template-columns:repeat(4,1fr)}}@media(max-width:780px){.pos-commandbar{align-items:flex-start;flex-direction:column}.pos-workspace{grid-template-columns:1fr}.pos-catalog-column{grid-column:auto}.pos-products{grid-template-columns:repeat(2,1fr)}.pos-terminal{display:none}}

/* Teclado numerico de la factura */
.quantity-keypad{margin:0 11px 11px;border:1px solid var(--border);border-radius:11px;background:#f8fafc;overflow:hidden}.keypad-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 11px;border-bottom:1px solid var(--border)}.keypad-heading small,.keypad-heading strong{display:block}.keypad-heading small{font-size:8px;color:var(--blue);font-weight:900;letter-spacing:.9px}.keypad-heading strong{font-size:11px;margin-top:2px}.keypad-heading>span{font-size:8px;color:var(--muted);text-align:right}.keypad-screen{display:flex;align-items:center;justify-content:space-between;margin:9px;background:#0f172a;color:#fff;border-radius:8px;padding:8px 11px}.keypad-screen span{font-size:9px;color:#94a3b8;text-transform:uppercase;font-weight:800}.keypad-screen output{font:800 24px/1 "Segoe UI",sans-serif;color:#fff}.keypad-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:0 9px 9px}.keypad-grid button{min-height:37px;border:1px solid #dbe3ee;border-radius:8px;background:#fff;color:#0f172a;font-size:14px;font-weight:800;cursor:pointer;box-shadow:0 1px 2px rgba(15,23,42,.04)}.keypad-grid button:hover{border-color:#93c5fd;background:#eff6ff}.keypad-grid button:active{transform:translateY(1px)}.keypad-grid .key-action{background:#e0f2fe;color:#0369a1}.keypad-grid .backspace{background:#fff7ed;color:#c2410c}.keypad-grid .key-clear{background:#fef2f2;color:#dc2626}.keypad-grid .key-confirm{background:var(--blue);border-color:var(--blue);color:#fff;font-size:10px}.keypad-message{margin:0;padding:0 10px 10px;color:var(--muted);font-size:9px}.keypad-message.success{color:#15803d;font-weight:700}
.pc-quantity-control{display:grid;grid-template-columns:38px 1fr 82px auto;align-items:center;gap:9px;margin:0 11px 11px;padding:10px;border:1px solid var(--border);border-radius:10px;background:#f8fafc}.pc-keyboard-icon{width:38px;height:32px;border-radius:7px;background:#0f172a;color:#fff;display:grid;place-items:center;font-size:9px;font-weight:900;letter-spacing:1px}.pc-quantity-info small,.pc-quantity-info strong,.pc-quantity-info span{display:block}.pc-quantity-info small{font-size:8px;color:var(--blue);font-weight:900;letter-spacing:.7px}.pc-quantity-info strong{font-size:10px;margin:2px 0}.pc-quantity-info span{font-size:8px;color:var(--muted)}.pc-quantity-field span{display:block;font-size:8px;font-weight:800;color:#475569;margin-bottom:3px}.pc-quantity-field input{width:100%;height:34px;border:1px solid #bfdbfe;border-radius:7px;background:#fff;text-align:center;font-size:16px;font-weight:900;color:#0f172a}.pc-quantity-field input:focus{outline:2px solid #93c5fd;border-color:var(--blue)}.pc-key-status{font-size:8px;color:var(--muted);min-width:46px}.pc-key-status.success{color:#15803d;font-weight:800}@media(max-width:1300px){.pc-quantity-control{grid-template-columns:38px 1fr 76px}.pc-key-status{grid-column:2/-1}}

/* Venta por peso y precio manual */
.manual-sale{margin:0 11px 11px;border:1px solid #bfdbfe;border-radius:11px;background:#f8fbff;overflow:hidden}.manual-sale-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 11px;border-bottom:1px solid #dbeafe}.manual-sale-head small,.manual-sale-head strong{display:block}.manual-sale-head small{font-size:8px;color:var(--blue);font-weight:900;letter-spacing:.8px}.manual-sale-head strong{font-size:11px;margin-top:2px}.manual-sale-head>span{font-size:8px;color:var(--muted)}.sale-mode{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:9px 9px 0}.sale-mode button{height:32px;border:1px solid var(--border);border-radius:7px;background:#fff;color:#475569;font-size:10px;font-weight:800;cursor:pointer}.sale-mode button.active{background:var(--blue);border-color:var(--blue);color:#fff}.manual-fields{display:grid;grid-template-columns:1.4fr .65fr .9fr;gap:7px;padding:9px}.manual-fields label>span{display:block;font-size:8px;color:#475569;font-weight:800;margin-bottom:4px}.manual-fields input{width:100%;height:34px;border:1px solid var(--border);border-radius:7px;padding:0 8px;font:600 10px "Segoe UI",sans-serif}.manual-fields input:focus{outline:2px solid #93c5fd;border-color:var(--blue)}.manual-input{display:flex;align-items:center;background:#fff;border:1px solid var(--border);border-radius:7px;padding:0 7px}.manual-input input{border:0;padding:0 4px;text-align:right}.manual-input input:focus{outline:0}.manual-input b{font-size:9px;color:var(--muted)}.manual-result{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 9px;padding:9px 10px;border-radius:8px;background:#0f172a;color:#fff}.manual-result span,.manual-result strong{display:block}.manual-result span{font-size:8px;color:#94a3b8;text-transform:uppercase}.manual-result strong{font-size:17px;margin-top:2px}.manual-result button{border:0;border-radius:7px;background:var(--green);color:#fff;padding:9px 10px;font-size:9px;font-weight:900;cursor:pointer}.manual-message{margin:0;padding:8px 10px 10px;color:var(--muted);font-size:8px;line-height:1.4}.manual-message.success{color:#15803d;font-weight:700}.manual-message.error{color:#dc2626;font-weight:700}@media(max-width:1350px){.manual-fields{grid-template-columns:1fr 1fr}.manual-fields label:first-child{grid-column:1/-1}}@media(max-width:700px){.manual-fields{grid-template-columns:1fr}.manual-fields label:first-child{grid-column:auto}.manual-result{align-items:stretch;flex-direction:column}}
.login-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top right,#dbeafe,#f8fafc 52%)}.login-card{width:min(420px,calc(100% - 32px));background:#fff;border:1px solid var(--border);border-radius:18px;padding:30px;box-shadow:var(--shadow);text-align:center}.login-logo{margin:0 auto 14px}.login-card h1{margin:0 0 6px}.login-card>p{color:var(--muted);font-size:13px;margin:0 0 20px}.login-card form{display:grid;gap:13px;text-align:left}.login-card label{font-size:12px;font-weight:750}.login-card input{display:block;width:100%;height:44px;margin-top:6px;border:1px solid var(--border);border-radius:9px;padding:0 12px;font-size:14px}.login-card input:focus{outline:2px solid #93c5fd;border-color:var(--blue)}.login-card button{height:44px}.login-message{min-height:18px;color:var(--red);font-size:12px;text-align:center}.login-card>small{display:block;color:#94a3b8;margin-top:15px}


.s4m-action{background:#fff;color:var(--action);border:1px solid color-mix(in srgb,var(--action) 35%,white)}.s4m-action b{display:inline-grid;place-items:center;min-width:24px;height:22px;padding:0 4px;border-radius:5px;background:var(--action);color:#fff;font-size:9px}.s4m-toast{position:fixed;right:24px;bottom:24px;max-width:360px;background:#0f172a;color:#fff;padding:14px 17px;border-radius:11px;box-shadow:0 12px 35px rgba(15,23,42,.25);z-index:100;font-size:13px}.s4m-toast strong{display:block;margin-bottom:4px}.pos-scan{display:flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--border);color:var(--text)}.mini-barcode{width:27px;height:19px;background:repeating-linear-gradient(90deg,#0f172a 0 2px,transparent 2px 4px,#0f172a 4px 5px,transparent 5px 8px)}.code-showcase{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}.code-card{padding:22px;display:grid;grid-template-columns:190px 1fr;align-items:center;gap:22px}.code-card small{color:var(--blue);font-size:10px;font-weight:900;letter-spacing:1px}.code-card h2{margin:5px 0 8px}.code-card p{color:var(--muted);font-size:13px;line-height:1.55}.round-code{width:170px;height:170px;border-radius:50%;background:#fff;border:14px solid #0f172a;display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:20px;box-shadow:inset 0 0 0 7px #fff,0 10px 26px rgba(15,23,42,.14)}.round-code span{border-radius:50%;background:#0f172a}.round-code span:nth-child(2),.round-code span:nth-child(4),.round-code span:nth-child(9){background:var(--blue)}.barcode-demo{height:150px;display:flex;align-items:stretch;justify-content:center;gap:4px;padding:20px 14px 28px;position:relative;background:#fff;border:1px solid var(--border);border-radius:10px}.barcode-demo i{display:block;background:#0f172a}.barcode-demo i:nth-child(3n+1){width:3px}.barcode-demo i:nth-child(3n+2){width:7px}.barcode-demo i:nth-child(3n){width:2px}.barcode-demo small{position:absolute;bottom:8px;color:#0f172a;letter-spacing:3px}.s4m-connection-note{margin-top:18px;padding:12px 14px;border-left:4px solid var(--orange);background:#fff7ed;color:#9a3412;font-size:12px}@media(max-width:900px){.code-showcase{grid-template-columns:1fr}.code-card{grid-template-columns:1fr}.round-code,.barcode-demo{margin:auto}}


/* Graficos empresariales: barras + circular */
.analytics-pair{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.8fr);gap:16px;margin-top:16px}.chart-card{overflow:hidden}.chart-heading{display:flex;align-items:center;justify-content:space-between;padding:17px 19px;border-bottom:1px solid var(--border)}.chart-heading small{color:var(--blue);font-size:9px;font-weight:900;letter-spacing:1px}.chart-heading h3{font-size:15px;margin:4px 0 0}.chart-badge{background:#dbeafe;color:#1d4ed8;padding:5px 9px;border-radius:999px;font-size:9px;font-weight:900}.chart-badge.circular{background:#ede9fe;color:#6d28d9}.modern-bar-chart{height:290px;display:grid;grid-template-columns:42px 1fr;padding:24px 20px 8px}.chart-y{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;padding:0 9px 27px 0;color:#94a3b8;font-size:9px}.chart-plot{position:relative;display:grid;grid-template-columns:repeat(6,1fr);align-items:end;gap:12px;border-left:1px solid var(--border);border-bottom:1px solid var(--border);padding:0 14px}.grid-lines{position:absolute;inset:0 0 26px;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}.grid-lines i{height:1px;background:#eef2f7;width:100%}.bar-col{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative;z-index:1}.bar-col>div{width:min(34px,72%);height:var(--h);min-height:30px;background:linear-gradient(180deg,color-mix(in srgb,var(--c) 70%,white),var(--c));border-radius:8px 8px 2px 2px;position:relative;box-shadow:0 7px 16px color-mix(in srgb,var(--c) 18%,transparent);transition:filter .18s,transform .18s}.bar-col:hover>div{filter:saturate(1.25);transform:translateY(-3px)}.bar-col b{position:absolute;top:-19px;left:50%;transform:translateX(-50%);font-size:9px;color:#64748b}.bar-col>span{height:26px;display:flex;align-items:end;font-size:9px;color:#64748b}.chart-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 18px;border-top:1px solid var(--border);font-size:10px;color:#64748b}.chart-foot small{color:#94a3b8}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px}.dot.blue{background:var(--blue)}.dot.green{background:var(--green)}.donut-layout{min-height:290px;display:grid;grid-template-columns:180px 1fr;align-items:center;gap:15px;padding:22px}.donut-chart{width:170px;height:170px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#2563eb 0 38%,#16a34a 38% 64%,#f97316 64% 82%,#7c3aed 82% 100%);box-shadow:0 12px 30px rgba(37,99,235,.16);position:relative}.donut-chart::before{content:"";position:absolute;width:104px;height:104px;background:#fff;border-radius:50%;box-shadow:inset 0 0 0 1px #eef2f7}.donut-chart>div{position:relative;z-index:1;text-align:center}.donut-chart strong,.donut-chart span{display:block}.donut-chart strong{font-size:24px}.donut-chart span{font-size:10px;color:var(--muted);margin-top:2px}.donut-legend{display:grid;gap:9px}.donut-legend>div{display:flex;justify-content:space-between;gap:10px;padding-bottom:8px;border-bottom:1px solid #f1f5f9;font-size:10px}.donut-legend span{display:flex;align-items:center;color:#475569}.donut-legend i{width:9px;height:9px;border-radius:50%;background:var(--legend);margin-right:7px}.donut-legend b{color:var(--text)}.dashboard-alerts{margin-top:16px}@media(max-width:1180px){.analytics-pair{grid-template-columns:1fr}.donut-layout{grid-template-columns:200px 1fr}}@media(max-width:650px){.modern-bar-chart{padding-left:10px}.chart-plot{gap:5px}.donut-layout{grid-template-columns:1fr}.donut-chart{margin:auto}.chart-foot{align-items:flex-start;flex-direction:column}}

/* Identidad visual S4MGlobal */
.brand-mark{width:50px;height:50px;flex:0 0 50px;border-radius:13px;background:#020617 url('/static/img/s4m-logo.png') center/cover no-repeat;box-shadow:0 7px 18px rgba(0,132,255,.28);font-size:0;overflow:hidden}
.login-logo{width:132px;height:132px;margin:0 auto 18px;border-radius:26px;background-size:cover;box-shadow:0 18px 38px rgba(0,82,204,.28)}
@media(max-width:760px){.brand{padding-inline:11px}.brand-mark{width:50px;height:50px;flex-basis:50px}}

/* Cierre seguro de sesión */
.logout-btn{margin-left:12px;border:1px solid #fecaca;background:#fff7f7;color:#b91c1c;border-radius:9px;padding:8px 12px;font:700 12px Inter,"Segoe UI",sans-serif;cursor:pointer;transition:background .18s,border-color .18s,transform .18s}
.logout-btn:hover{background:#fee2e2;border-color:#fca5a5;transform:translateY(-1px)}
.logout-btn:disabled{cursor:wait;opacity:.65;transform:none}
.logout-btn span{font-size:15px;margin-right:4px}
@media(max-width:760px){.logout-btn{font-size:0;padding:7px 10px}.logout-btn span{font-size:17px;margin:0}}

/* Perfil del usuario */
.profile-trigger{cursor:pointer;background-size:cover;background-position:center;box-shadow:0 0 0 3px #dbeafe;transition:transform .18s,box-shadow .18s}.profile-trigger:hover{transform:translateY(-1px);box-shadow:0 0 0 4px #bfdbfe}.profile-panel{position:absolute;right:22px;top:58px;width:300px;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 18px 45px rgba(15,23,42,.18);padding:14px;z-index:50}.profile-summary{display:flex;gap:12px;align-items:center;padding-bottom:13px;border-bottom:1px solid var(--border)}.profile-summary>div:last-child{display:grid;gap:2px;min-width:0}.profile-summary strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-summary small{color:var(--muted)}.profile-summary b{width:max-content;margin-top:4px;padding:4px 8px;border-radius:999px;background:#dbeafe;color:#1d4ed8;font-size:9px;text-transform:uppercase;letter-spacing:.6px}.profile-photo{width:52px;height:52px;flex:0 0 52px;border-radius:50%;display:grid;place-items:center;background-color:#2563eb;background-size:cover;background-position:center;color:#fff;font-weight:900}.profile-panel button{width:100%;margin-top:9px;border:0;border-radius:9px;padding:10px 12px;text-align:left;font-weight:750;cursor:pointer}.profile-edit{background:#eff6ff;color:#1d4ed8}.profile-logout{background:#fff1f2;color:#be123c}.profile-modal{position:fixed;inset:0;background:rgba(15,23,42,.58);display:grid;place-items:center;padding:20px;z-index:100}.profile-modal[hidden],.profile-panel[hidden]{display:none}.profile-dialog{position:relative;width:min(620px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 24px 70px rgba(15,23,42,.3);padding:24px}.profile-close{position:absolute;right:16px;top:13px;border:0;background:#f1f5f9;width:34px;height:34px;border-radius:50%;font-size:23px;cursor:pointer}.profile-dialog-head{display:flex;gap:18px;align-items:center;padding-bottom:19px;border-bottom:1px solid var(--border)}.profile-dialog-head h2{margin:0 0 4px}.profile-dialog-head p{margin:0 0 9px;color:var(--muted);font-size:12px}.profile-photo-large{width:96px;height:96px;flex-basis:96px;font-size:25px}.profile-photo-button{display:inline-block;padding:7px 10px;border-radius:8px;background:#e0f2fe;color:#0369a1;font-size:11px;font-weight:800;cursor:pointer}.profile-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.profile-form label{font-size:11px;font-weight:800;color:#475569}.profile-form input{display:block;width:100%;height:42px;margin-top:6px;border:1px solid var(--border);border-radius:8px;padding:0 11px;font-size:13px}.profile-form input[readonly]{background:#f8fafc;color:#64748b}.profile-form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:9px;margin-top:4px}.profile-form-message{grid-column:1/-1;text-align:center;color:#1d4ed8;font-size:12px;min-height:18px;margin:0}@media(max-width:640px){.profile-panel{right:10px;width:min(300px,calc(100vw - 90px))}.profile-form{grid-template-columns:1fr}.profile-dialog-head{align-items:flex-start}.profile-form-actions,.profile-form-message{grid-column:1}}
