*{box-sizing:border-box;margin:0;padding:0}body{font-family:Segoe UI,system-ui,sans-serif;background:#f4f6f9;color:#1a1a2e}button{cursor:pointer;font-family:inherit}input{font-family:inherit}.lock-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f4f6f9}.lock-card{background:#fff;border-radius:16px;padding:40px 32px;width:340px;box-shadow:0 4px 24px #00000014;display:flex;flex-direction:column;gap:16px;text-align:center}.lock-logo{font-size:40px}.lock-card h2{font-size:20px;font-weight:700}.lock-card p{font-size:13px;color:#666}.lock-card input{width:100%;padding:12px 14px;border:1.5px solid #ddd;border-radius:8px;font-size:15px;outline:none}.lock-card input:focus{border-color:#6b21a8}.lock-card button{width:100%;padding:13px;background:linear-gradient(120deg,#4c1d95,#c026d3);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600}.err{color:#dc2626;font-size:13px}.header{background:#fff;border-bottom:1px solid #e5e7eb;padding:14px 24px;display:flex;align-items:center;justify-content:space-between}.header-brand{font-size:17px;display:flex;align-items:center;gap:8px}.header-brand span{color:#6b7280;font-weight:400;font-size:14px}.btn-logout{padding:7px 14px;border:1px solid #e5e7eb;border-radius:8px;font-size:13px;color:#6b7280;background:#fff}.btn-logout:hover{background:#f9fafb}.app{min-height:100vh;display:flex;flex-direction:column}.main{flex:1;display:grid;grid-template-columns:380px 1fr;gap:0;max-width:1100px;margin:24px auto;width:100%;padding:0 20px;gap:20px}@media (max-width: 768px){.main{grid-template-columns:1fr}}.panel{background:#fff;border-radius:14px;padding:24px;box-shadow:0 1px 4px #0000000f}.panel h3{font-size:15px;font-weight:700;margin-bottom:14px;color:#1a1a2e}.search-input{width:100%;padding:11px 14px;border:1.5px solid #e5e7eb;border-radius:10px;font-size:14px;outline:none}.search-input:focus{border-color:#7e22ce}.hint{font-size:13px;color:#9ca3af;margin-top:10px}.results{list-style:none;margin-top:12px;display:flex;flex-direction:column;gap:6px;max-height:calc(100vh - 220px);overflow-y:auto}.result-item{padding:12px 14px;border:1.5px solid #f3f4f6;border-radius:10px;cursor:pointer;transition:border-color .15s,background .15s}.result-item:hover{border-color:#c084fc;background:#fdf4ff}.result-item.selected{border-color:#7e22ce;background:#fdf4ff}.result-desc{font-size:13px;font-weight:600}.result-meta{font-size:12px;color:#6b7280;margin-top:2px}.result-code{font-size:11px;color:#7e22ce;margin-top:3px;font-family:monospace;font-weight:600}.stock{color:#059669}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:12px;color:#9ca3af}.empty-icon{font-size:48px}.empty-state p{font-size:14px}.meta-row{font-size:13px;color:#6b7280;margin-bottom:20px;margin-top:4px}.code-section{margin-bottom:20px}.code-section label,.qty-section label{font-size:13px;font-weight:600;display:block;margin-bottom:8px}.code-row{display:flex;gap:8px}.code-input{flex:1;padding:10px 14px;border:1.5px solid #e5e7eb;border-radius:8px;font-size:14px;font-family:monospace;font-weight:700;letter-spacing:.05em;outline:none;text-transform:uppercase}.code-input:focus{border-color:#7e22ce}.btn-suggest{padding:10px 14px;background:#fdf4ff;border:1.5px solid #e9d5ff;border-radius:8px;font-size:13px;font-weight:600;color:#7e22ce;white-space:nowrap}.btn-suggest:hover{background:#f3e8ff}.code-hint{font-size:11px;color:#9ca3af;margin-top:6px}.save-row{display:flex;align-items:center;gap:12px;margin-top:14px}.btn-save{padding:10px 18px;background:linear-gradient(120deg,#4c1d95,#c026d3);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600}.btn-save:disabled{opacity:.5;cursor:not-allowed}.save-msg{font-size:13px;font-weight:600}.qty-section{margin-bottom:20px}.qty-input{width:120px;padding:10px 14px;border:1.5px solid #e5e7eb;border-radius:8px;font-size:15px;font-weight:600;outline:none}.qty-input:focus{border-color:#7e22ce}.preview-wrap{border-top:1px solid #f3f4f6;padding-top:20px}.preview-label{width:189px;height:151px;border:1.5px dashed #c084fc;border-radius:6px;padding:6px 8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;margin-bottom:16px;background:#fff}.preview-label svg{max-width:168px}.preview-code{font-family:monospace;font-size:10px;font-weight:700;letter-spacing:.08em}.preview-desc{font-size:8px;text-align:center;max-width:165px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#374151}.preview-meta{font-size:7.5px;color:#6b7280;text-align:center}.preview-precio{font-size:6.5px;color:#9ca3af;font-family:monospace;text-align:center;margin-top:1px}.preview-hint{font-size:11px;color:#9ca3af;text-align:center;margin-top:6px}.preview-label-wrap{margin-bottom:16px}.print-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.btn-print{padding:11px 22px;background:#059669;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:700}.btn-print:hover{background:#047857}.field-section{margin-bottom:18px}.field-section label{font-size:13px;font-weight:600;display:block;margin-bottom:8px}.label-sub{font-weight:400;color:#9ca3af;font-size:12px}.field-input{width:100%;padding:10px 14px;border:1.5px solid #e5e7eb;border-radius:8px;font-size:14px;outline:none}.field-input:focus{border-color:#7e22ce}.field-hint{font-size:11px;color:#9ca3af;margin-top:5px}.precio-preview{margin-top:8px;font-size:12px;color:#6b7280}.precio-preview code{background:#f3f4f6;padding:2px 6px;border-radius:4px;font-size:12px;color:#374151}.size-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.size-btn{padding:8px 6px;border:1.5px solid #e5e7eb;border-radius:8px;font-size:12px;font-weight:600;color:#374151;background:#fff;transition:all .15s}.size-btn:hover{border-color:#c084fc;background:#fdf4ff}.size-btn.active{border-color:#7e22ce;background:#fdf4ff;color:#7e22ce}.custom-size-row{display:flex;align-items:center;gap:8px;margin-top:10px}.custom-dim{width:80px;padding:8px 10px;border:1.5px solid #e5e7eb;border-radius:8px;font-size:14px;outline:none;text-align:center}.custom-dim:focus{border-color:#7e22ce}
