:root{--bg:#07091b;--panel:#12162b;--glass:#ffffff0d;--line:#ffffff18;--text:#f7f7fb;--muted:#aeb4c8;--accent:#8067ff;--accent2:#32c8ff;--ok:#45d38a;--warn:#ffb648;--danger:#ff5d73}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,sans-serif;background:radial-gradient(circle at 20% 10%,#3e2786 0,transparent 30%),radial-gradient(circle at 80% 70%,#087ea4 0,transparent 28%),var(--bg);color:var(--text);min-height:100vh}a{color:inherit;text-decoration:none}.shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{padding:24px 16px;border-right:1px solid var(--line);background:#080a18cc;backdrop-filter:blur(18px);position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;font-weight:800;font-size:20px;margin-bottom:28px}.brand img{width:44px;height:44px;object-fit:contain}.nav a{display:block;padding:12px 14px;border-radius:12px;color:var(--muted);margin:5px 0}.nav a:hover,.nav a.active{background:#ffffff12;color:#fff}.main{padding:30px}.top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.grid{display:grid;gap:16px}.stats{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:linear-gradient(145deg,#ffffff12,#ffffff08);border:1px solid var(--line);border-radius:20px;padding:20px;box-shadow:0 20px 60px #0004;backdrop-filter:blur(18px)}.stat b{font-size:32px;display:block}.muted{color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:11px 16px;border-radius:12px;border:1px solid var(--line);background:#ffffff0d;color:#fff;font-weight:700;cursor:pointer}.btn.primary{background:linear-gradient(135deg,var(--accent),#5b43da);border:0}.btn.success{background:#178d5a;border:0}.btn.danger{background:#9b3040;border:0}input,select,textarea{width:100%;padding:11px 12px;border-radius:11px;border:1px solid var(--line);background:#090c1c;color:#fff}label{display:block;margin-bottom:12px;color:var(--muted)}label span{display:block;margin-bottom:6px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.kanban{display:grid;grid-template-columns:repeat(4,minmax(250px,1fr));gap:14px;overflow:auto}.column{background:#06081799;border:1px solid var(--line);border-radius:18px;padding:12px;min-height:480px}.column h3{margin:4px 5px 14px}.project{background:#151a32;border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:10px;cursor:grab}.project b{display:block;margin-bottom:7px}.badge{display:inline-block;padding:5px 9px;border-radius:999px;background:#ffffff12;color:var(--muted);font-size:12px}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:12px;border-bottom:1px solid var(--line)}.product-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.product img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:14px;background:#0b0e20}.hero{min-height:70vh;display:grid;place-items:center;padding:40px}.hero-card{text-align:center;width:min(700px,92vw);padding:46px}.hero-logo{width:110px}.filters{display:flex;gap:8px;flex-wrap:wrap}.label-print{width:62mm;height:29mm;background:#fff;color:#000;padding:2.4mm;display:grid;grid-template-columns:1fr 18mm;gap:2mm;font-family:Arial}.label-print h2{font-size:12pt;margin:0}.label-print .price{font-size:13pt;font-weight:800}.label-print .small{font-size:7pt}.qr{width:18mm;height:18mm}@media(max-width:900px){.shell{grid-template-columns:1fr}.sidebar{height:auto;position:relative}.nav{display:flex;overflow:auto}.nav a{white-space:nowrap}.stats{grid-template-columns:repeat(2,1fr)}.main{padding:18px}.form-grid{grid-template-columns:1fr}}@media print{body{background:#fff}.no-print{display:none!important}.label-print{position:absolute;left:0;top:0;margin:0}.shell,.main{display:block;padding:0}}

/* Etiqueta térmica 62 × 29 mm */
.label-page{background:#2c1b68;min-height:100vh}.label-toolbar{padding:18px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.label-option{display:inline-flex;align-items:center;gap:8px;margin:0}.label-option input{width:auto}.thermal-label{width:62mm;height:29mm;background:#fff;color:#000;padding:1.6mm 1.8mm;display:grid;grid-template-columns:minmax(0,1fr) 17mm;gap:1.5mm;font-family:Arial,Helvetica,sans-serif;overflow:hidden}.thermal-left{min-width:0;display:flex;flex-direction:column}.thermal-brand{display:flex;align-items:center;gap:1.2mm;height:5mm;font-size:6.8pt;font-weight:800;letter-spacing:.35pt}.thermal-brand img{width:4.8mm;height:4.8mm;object-fit:contain;filter:grayscale(1) contrast(2)}.thermal-name{font-size:10.5pt;line-height:1.05;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:.5mm}.thermal-price{font-size:11.5pt;line-height:1.1;font-weight:900;min-height:4.1mm}.thermal-barcode{display:block;width:100%;max-width:37mm;height:7mm}.thermal-sku{font-size:6.7pt;line-height:1;margin-top:.3mm;letter-spacing:.1pt}.thermal-right{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0}.thermal-qr{width:16.7mm;height:16.7mm}.thermal-qr img,.thermal-qr canvas{width:16.7mm!important;height:16.7mm!important;display:block}.thermal-scan{font-size:5.7pt;line-height:1;text-align:center;margin-top:.8mm;white-space:nowrap}

/* Escáner móvil */
.scanner-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:16px}.scanner-reader{overflow:hidden;border-radius:16px;background:#080b19}.scanner-reader video{border-radius:14px}.scanner-status{margin-top:12px;min-height:24px}.quick-product{display:grid;grid-template-columns:minmax(220px,360px) 1fr;gap:24px;align-items:start}.quick-product-media img,.quick-no-photo{width:100%;aspect-ratio:1;object-fit:cover;border-radius:16px;background:#090c1c}.quick-no-photo{display:grid;place-items:center;color:var(--muted)}.quick-price{font-size:34px;font-weight:900;margin:12px 0}.quick-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}.quick-details div{padding:12px;border:1px solid var(--line);border-radius:12px;background:#ffffff08}.quick-details dt{color:var(--muted);font-size:12px}.quick-details dd{margin:5px 0 0;font-weight:800}.quick-actions{display:flex;gap:9px;flex-wrap:wrap}.quick-actions form{margin:0}.scanner-flash{margin-bottom:16px;border-color:#45d38a66}
@media(max-width:800px){.scanner-grid,.quick-product{grid-template-columns:1fr}.quick-details{grid-template-columns:1fr}.scanner-reader{min-height:300px}}
@media print{@page{size:62mm 29mm;margin:0}.label-page{background:#fff;width:62mm;height:29mm;overflow:hidden}.thermal-label{position:fixed;left:0;top:0;margin:0}.label-toolbar{display:none!important}}
